在nginx日志的access log中记录post请求的参数值
背景:有时程序偶出现参数少了或没有提交到下一个链接Url里后出现问题,如何查呢,最好的办法是在nginx上的加post参数,以定位到问题才有可能对某个UIR的代码出现的问题进行排查。
og_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;
注意放的位置在http里:nginx: [warn] the "log_format" directive may be used only on "http" level in /usr/local/nginx/conf/vhost/xxx.conf:59
nginx.conf
http里定义:wwwlog
log_format wwwlog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for "$request_time"';
在include每个域名里后面加上wwwlog:
access_log /data/logs/access_mytv.log wwwlog;
于是在同样的access后这样写:
nginx.conf
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'; 包含的justwinit.conf:
access_log /data/logs/access_mytv.log access
日志如下:
202.108.16.77 - - [14/Jan/2015:10:45:45 +0800] "POST /partin/releaseinfo HTTP/1.1" 302 5 id=47&choice_type=new&eid=338&videoid=5d6dabda-9b97-11e4-9584-21fa84a4ab6e&file_ext=mp4&lang=zh&upload_server=202.108.17.15&title=7%E5%B2%81%E5%B0%8F%E5%AD%A9%E9%85%92%E7%93%B6%E4%B8%8A%E5%81%9A%E4%BF%AF%E5%8D%A7%E6%92%91%E8%B9%BF%E7%BA%A2%E7%BD%91%E7%BB%9C&desc=7%E5%B2%81%E5%B0%8F%E5%AD%A9%E9%85%92%E7%93%B6%E4%B8%8A%E5%81%9A%E4%BF%AF%E5%8D%A7%E6%92%91%E8%B9%BF%E7%BA%A2%E7%BD%91%E7%BB%9C&tags=%E6%B5%8B%E8%AF%95%E4%B8%80%E4%B8%8B%E3%80%82&checkflag=on "http://justwinit.cn/partin/showupload/activityid/47" "Mozilla/5.0 (Windows NT 6.1; rv:34.0) Gecko/20100101 Firefox/34.0" -
POST URI及参数:POST /partin/releaseinfo HTTP/1.1" 302 5 .....
来自的refer Uri:http://justwinit.cn/partin/showupload/activityid/47
这个access_log的log_format应该可以定义多个不同的名供不同日志的需求。
再就是,
get请求的参数就是存放在http header中的,所以修改header的大小限制 当然可以解决请求串过长的问题啦。
移动互联网行业开发过程中,服务端经常会需要检查是否收到请求,收到什么样的请求,最简单的办法就是看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;
在nginx日志的access log中记录post请求的参数值的更多相关文章
- 在nginx日志access log可以记录POST请求的参数值
1) 在nginx日志access log可以记录POST请求的参数值 实现程度:日志中可以显示POST请求所提交的参数值 问题: 日志中文显示十六进制(在配置文件中配置中文也无效) 没有对 ...
- [日志分析] Access Log 日志分析
0x00.前言: 如何知道自己所在的公司或单位是否被入侵了?是没人来“黑”,还是因自身感知能力不足,暂时还没发现?入侵检测是每个安全运维人员都要面临的严峻挑战.安全无小事,一旦入侵成功,后果不堪设想. ...
- nginx.conf 下日志host.access.log 说明
位置usr/local/nginx/conf/nginx.conf $server_port 请求端口 $remote_addr 局域网代理IP:如果没同意任何代理的话$remote_addr 就是真 ...
- nginx日志相关运维操作记录
在分析服务器运行情况和业务数据时,nginx日志是非常可靠的数据来源,而掌握常用的nginx日志分析命令的应用技巧则有着事半功倍的作用,可以快速进行定位和统计. 1)Nginx日志的标准格式(可参考: ...
- nginx关闭全局access.log,error.log
如果nginx的server里没配置access.log,nginx会默认将server的访问日志记录到access.log, 关闭方法: 在nginx.conf配置文件中, 在全局配置中添加 err ...
- 【日志过滤】Nginx日志过滤 使用ngx_log_if不记录特定日志
ngx_log_if是Nginx的一个第三方模块.它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomL ...
- Nginx日志过滤 使用ngx_log_if不记录特定日志
ngx_log_if是Nginx的一个第三方模块.它在Github上的描述是这样介绍的:ngx_log_if是一个独立的模块,允许您控制不要写的访问日志,类似于Apache的"CustomL ...
- Nginx日志切割工具——logrotate 使用记录
1.安装 logrotate是Linux系统自带,无需安装 2.配置 进入[/etc/logrotate.d/nginx]文件修改配置 # 需要备份的日志路劲,一个或多个都可以 /data/logs/ ...
- logstash 6.6.0 读取nginx日志 插入到elasticsearch中
logstash.conf input { # For detail config for log4j as input, # See: https://www.elastic.co/guide/en ...
随机推荐
- ZeroMQ接口函数之 :zmq_sendmsg – 从一个socket上发送一个消息帧
ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-sendmsg zmq_sendmsg(3) ØMQ Manual - ØMQ/4.1.0 Name ...
- java分享第十二天(接口测试jsoup&cookie)
一.Cookies到底是什么鬼?简单来说,Cookies就是服务器暂时存放在客户端(你的电脑里)的资料(.txt格式的文本文件),好让服务器用来辨认 你的计算机.当你在浏览网站的时候,Web服务器会先 ...
- easy ui插件
简介: easy UI是类似于jQuery UI的插件库 注意:多脚本同时使用时,注意脚本冲突问题. 常用插件: 1.tree插件(tree插件实现动态树形菜单) 2.datagrid插件(datag ...
- Vue.js组件之联动下拉框
Html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 第九周 psp
团队项目PSP 一:表格 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 9:50 12:45 35 45 80 分析与 ...
- 第八周PSP
团队项目PSP 一:表格 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论用户界面 8:40 11:40 35 60 70 分析与 ...
- Collection
集合(collection): 使用存储实例的变长的容 容器名 存储的元素类型 长度 数组 基本和引用 定长 集合 引用 ...
- 登录FTP,下载并读取文件内容
maven 添加jar <dependency> <groupId>commons-net</groupId> <artifactId>commons- ...
- 关于web.config中<customErrors>节点说明
<customErrors>节点用于定义一些自定义错误信息的信息.此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程 ...
- mock the facade
mock the facade: Auth::shouldReceive('user')->andReturn($user = m::mock('StdClass')); $user->s ...