IT技术博客大学习 共学习 共进步

如何在nginx的access log中记录post请求的参数

五四陈科学院-坚信科学,分享技术 2011-01-06 22:17:27 累计浏览 4,245 次

移动互联网行业开发过程中,服务端经常会需要检查是否收到请求,收到什么样的请求,最简单的办法就是看nginx的access log,常见的nginx配置中access log一般都只有GET请求的参数,而POST请求的参数却不行。
http://wiki.nginx.org/NginxHttpCoreModule#.24request_body

$request_body

This variable(0.7.58+) contains the body of the request. The significance of this variable appears in locations with directives proxy_pass or fastcgi_pass.

正如上文件所示,只需要使用$request_body即可打出post的数据,在现存的server段加上下面的设置即可:


log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent $request_body "$http_referer" "$http_user_agent" $http_x_forwarded_for';
access_log logs/test.access.log access;

建议继续学习

  1. YSLOW法则中,为什么yahoo推荐用GET代替POST? (累计阅读 11,667)
  2. JSONP与POST方式请求 (累计阅读 11,184)
  3. POST与GET的区别及RESTful (累计阅读 7,724)
  4. 使用file_get_contents提交http post (累计阅读 7,566)
  5. Ajax还是普通Post? (累计阅读 3,244)
  6. HTTP 的 POST 参数提交和上传的不同与 Mojolicious 的实现. (累计阅读 2,188)