【发布时间】:2012-02-06 11:00:29
【问题描述】:
我想在 NGINX 中记录 POST 数据,并且正在使用 $request_body 来做同样的事情。
但有一些我不想记录的 POST 字段(如密码、电子邮件等)。是否可以解析发布数据或将数据异步发送到 PHP/RUBY 或任何其他脚本,以便我可以在那里解析 POST 数据?
【问题讨论】:
我想在 NGINX 中记录 POST 数据,并且正在使用 $request_body 来做同样的事情。
但有一些我不想记录的 POST 字段(如密码、电子邮件等)。是否可以解析发布数据或将数据异步发送到 PHP/RUBY 或任何其他脚本,以便我可以在那里解析 POST 数据?
【问题讨论】:
使用默认模块直接访问 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();
?>
【讨论】:
我通过使用Nginx LUA module 实现了这一点。然后通过在 lua 脚本中调用ngx.req.get_post_args(),我能够以表格(LUA 的数组)的形式获取帖子内容。因此,在 lua 本身中解析它,删除不必要的参数并记录它解决了这个问题。
【讨论】: