百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Nginx记录用户请求Header到access log

off999 2025-02-04 15:39 35 浏览 0 评论

为了统计和其它用途,经常有人需要自定义Nginx日志,把http请求中的某个字段记录到日志中,刚好在看lua+nginx的文章,第一想到的是用lua赋值来做,但是想想有点小恶心,于是Google了一番,发现Nginx自己就能够记录收到的HTTP请求的头部数据,测试如下方法可用。

测试环境Nginx 1.1.19

1、把自定义头部加入日志

为了方便,我们可能会在HTTP头里面加入特定的字符串,做一些标示,如果需要把标示打到日志里面,其实很简单。

在nginx的http段里面对access log做如下的设置:

……
http {
……
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$http_mycheck"';
    access_log  logs/access.log  main;
……
}
……

我在日志格式的最后面加入了$http_mycheck,那么,Nginx会记录mycheck这个头部,保存到access log里面。

重启Nginx,然后curl测试:

./nginx -s reload
curl -H "mycheck: justtestlog" localhost/whatever.html
curl localhost/whatever.html

然后查看两次请求的日志记录

tail -2 logs/access.log

127.0.0.1 - - [xxx] "GET /whatever.html HTTP/1.1" 200 21 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" "justtestlog"
127.0.0.1 - - [xxx] "GET /whatever.html HTTP/1.1" 200 21 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-" "-"

请求头部中没有mycheck字段的时候,日志字段里记为"-",header有mycheck字段的时候,最后一段是mycheck的值。

2、记录用户访问的cookie

……
    set $dm_cookie "";
    if ($http_cookie ~* "(.+)(?:;|$)") {
        set $dm_cookie $1;
    }
 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$http_mycheck" "$dm_cookie"';
 access_log  logs/access.log  main;
……

这样日志里面就可以看到cookie了,据说可以监控用户和行为。但是在实际中,cookie太长,加上cookie之后,日志量会成倍增长,会加大服务器的压力,如非必要,不建议在日志中添加该字段。

3、记录用户访问的$request_body

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

$request_body 变量已经增加到上述文件里面,可以记录到客户端请求体也就是域名后面进行的传参值,记录这个主要时判断用户名密码一类的,建议生产服务器也不要添加,日志量会增大。


作者:PassZhang

出处:http://dwz.date/cjZr

相关推荐

chrome安卓版下载(chrome安卓版下载极速)

如果您在手机上使用Chrome浏览器时下载速度较慢,以下是一些可能的解决方法:1.检查并改善网络连接:首先,确保您的手机处于良好的网络连接状态。尝试连接到其他Wi-Fi网络或使用移动数据连接,查看下...

一键制作u盘启动盘(一键制作u盘启动盘,电脑安装系统不求人!)

U盘启动盘的制作过程如下,首先你用U盘制作工具,像大白菜或U盘启动大师将U盘制成启动盘,制作过程中会提示你对U盘进行格式化确认后,可以生成U盘的引导盘和一些制作工具,仅BIOS设置成U盘启动后,在PE...

火影忍者下载(火影忍者下载要多久)

安卓的手机可以去自带的手机商城下载或去浏览器里搜索下载,可以去浏览器里搜索官方,然后从官方的里边下载。或者像别的一些软件,比如应用宝啊,4399小游戏之类的都可以下载,如果是苹果手机的话,那就自求多福...

免费邮箱大全(免费邮箱大全号码大全和密码)

因为我自己工作用的是189邮箱,觉得还不错,所以就推荐给你吧。189邮箱自带15G的云邮容量,邮件附件随意放。而且功能也是蛮多的,像语音输入、日程提醒等,都是很实用的功能,不过我还是最喜欢的它的免密登...

蜘蛛纸牌(蜘蛛纸牌游戏)

玩法是用鼠标单击来玩蜘蛛纸牌,玩法很简单只要每一种类型的按照顺序让A-K连成串就能消去。2.游戏开始时,为500分。以后每移牌或撤销移牌一次,扣一分。当一组同一花色的牌被移除整理到左下方时,加100分...

toptop官网(toptop官网入口地址)

答:找回有三种方式:绑定手机、安全手机和绑定邮箱绑定手机、安全手机和绑定邮箱,是不可以使用实名认证也就是身份证找回的。不过如果没有提前绑定安全手机和邮箱的话,就只能使用绑定手机找回。步骤都是一样的,这...

视频剪辑制作(视频剪辑制作教程)

操作步骤:第一步、首先,在电脑上打开视频剪辑工具,根据自己的需要在左侧选择需要的功能,比如说“视频合并”功能;?第二步、接着,点击“打开文件夹”或“打开文件”添加需要合并的视频,可批量选中添加;?第三...

ppt下载免费网站(ppt免费下载网站哪个好)

好多网站的PPT课件资源都要收费的,我推荐一个免费的课间资源软件,叫101教育PPT。它里面有各个年级课程章节对应的免费PPT课件、教案、电子教材,直接插入就可以使用。也可以根据需求自主编辑,因为软件...

微信赚钱一天100收入(2022微信赚钱一天100收入)

是真的!本来我也不信的后来想反正就十块不如试一试结果真的能赚钱哈哈不过可能有的是骗人的只要你认真去做,当然可以赚到钱了。目前微信小程序赚钱的方式主要有三种,(1)如果你自身有技术的话,你可以开...

豌豆荚下载官方正式版(豌豆荚下载官网下载)

豌豆荚从官方渠道获取应用,但并不完全是官方版本。豌豆荚与众多应用开发者合作,为用户提供最新的应用版本和稳定、安全的下载体验。不过,一些应用可能由豌豆荚进行额外的优化或定制,以提高用户体验或满足特定需求...

adobe flash官方下载(adobe flash player下载官网最新版)

您可以从Adobe官网(https://get.adobe.com/flashplayer/)下载AdobeFlashPlayer最新版本,并在您的手机上安装它。明显你是安装错版本了,这个可是分3...

58同城app下载安装官方免费下载

如果想要下载PC版(下载在电脑上使用),直接在浏览器中搜索就可以找到;如果想要下载手机版APP,最好是在手机自带或者已经下载好的应用商店搜索下载。其实电脑版下载没有什么必要,直接登录官方网站查看就好了...

360管家软件下载(360管家软件下载安装)

360和电脑管家,都是电脑的一个安全软件,这两种软件用户量和功能其实都差不多的要说哪个好用的话,看你偏向怎么用了,和你得使用习惯了下面我给大家分别说一下这两款软件的优缺点,嗯,首先说电脑管家的优点电脑...

红警2共和国之辉下载(红警2共和国之辉下载电脑版)

要下载《红警共和国之辉》,首先需要找到可靠的游戏下载平台,比如Steam、Origin、Uplay等。在平台上搜索游戏名称,选择购买和下载。下载过程中要注意网络连接稳定和电脑系统是否满足游戏要求,如需...

高德地图车机版官网(高德地图车机版官网入口)

手机安装高德地图车机版方法:进入【设置】--【其他设置】--【关于软件】中,选择检测更新。注:只有正式版才可程序内升级。方式二:官网下载安装步骤一:在官网下载公众版V2.0版本。步骤二:将软件拷贝到U...

取消回复欢迎 发表评论: