nginx访问日志格式的自定义配置,以本人线上项目为示例demo

2023-06-01 00:00:00 示例 自定义 线上

nginx日志分为两种

客户端访问记录文件名称:access_log;

服务运行错误记录文件名称:error.log;


今天我就来自定义配置一下 access_log 访问日志的格式


nginx版本

[[email protected] ~]# nginx -v
nginx version: nginx/1.16.1


nginx.conf文件

截取关键位置 其他省略...


http {
    include       mime.types;
    default_type  application/octet-stream;
#    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                     '"$http_user_agent" "$http_x_forwarded_for" $request_time';
     
  log_format test  '$realip - "$upstream_cache_status" $remote_user [$time_local] "$request" '
              '$status $body_bytes_sent "$http_referer" '
              '"$http_user_agent" "$remote_addr" "$upstream_addr" $request_time';

日志格式允许包含的变量注释如下:

$realip                       Nginx自带的Realip模块获取用户真实IP
$upstream_cache_status

$remote_user                    客户端用户名称
$time_local                     本地时间

$request                       请求的URL和HTTP协议
$status                       请求状态

$body_bytes_sent                  发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容
$http_referer                   从哪个页面链接访问过来的

$http_user_agent                  客户端浏览器相关信息
$remote_addr                    客户端IP地址,如果有代理服务器之类的,该值可能就不是客户端的真实IP了

$upstream_addr                   Nginx向客户端输出真实的后端IP地址
$request_time                   请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户

我这里就记录我用到的这些 想了解更多变量参数 请自行谷歌


使用调用,把这个格式日志写进access_log文件

server {
   ...省略...
   
   #会在nginx/log/目录下生成www_access.log文件
   access_log logs/www_access.log  test;
   
   ...
}

注意:

里面的test 就是log_format 右侧的test

[[email protected] logs]# ll
total 271376
-rw-r--r-- 1 root root      1672 Dec  7 09:48 error.log
-rw-r--r-- 1 root root         6 Nov 24 11:00 nginx.pid
-rw-r--r-- 1 root root 277876243 Dec  7 14:02 www_access.log


我的项目已经在线上跑很长时间了 随便复制一条信息过来

日志效果:

113.57.47.100 - "-" - [07/Dec/2021:09:59:07 +0800] "GET /demo333/89466.html HTTP/2.0" 200 7356 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.4 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.4 facebookexternalhit/1.1 Facebot Twitterbot/1.0" "113.57.47.100" "10.0.1.9:80" 0.076

相关文章