【问题标题】:Logging POST data in NGINX and avoiding unnecessary parameters在 NGINX 中记录 POST 数据并避免不必要的参数
【发布时间】:2012-02-06 11:00:29
【问题描述】:

我想在 NGINX 中记录 POST 数据,并且正在使用 $request_body 来做同样的事情。

但有一些我不想记录的 POST 字段(如密码、电子邮件等)。是否可以解析发布数据或将数据异步发送到 PHP/RUBY 或任何其他脚本,以便我可以在那里解析 POST 数据?

【问题讨论】:

    标签: post nginx logging


    【解决方案1】:

    使用默认模块直接访问 post 参数是不可能的,但您可以尝试做一些小技巧来实现这一点。这是一个例子:

    location /forPost { 
        try_files /logger.php $uri;
    }
    

    脚本应始终返回 404 状态,例如:

    <?php
       if (isset($_POST['data']) ) {
           logger($_POST['data']);
       }
       header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
       header("Status: 404 Not Found")
       die();
    ?>
    

    【讨论】:

      【解决方案2】:

      我通过使用Nginx LUA module 实现了这一点。然后通过在 lua 脚本中调用ngx.req.get_post_args(),我能够以表格(LUA 的数组)的形式获取帖子内容。因此,在 lua 本身中解析它,删除不必要的参数并记录它解决了这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-17
        • 2013-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 2021-11-02
        相关资源
        最近更新 更多