# Nginx开启access日志

# 内置变量

Nginx的access日志包含所有经过nginx的请求,以下是部分重要变量说明:

  • $http_host 请求头中的 Host 字段,表示请求的目标主机名

  • $http_x_forwarded_for 通常用于记录客户端的真实 IP 地址,特别是在请求经过代理或负载均衡器时

  • $http_cookie 请求中包含的所有 Cookie 字段,通常用于会话管理和用户跟踪

  • $request_time 是处理整个 HTTP 请求所花费的时间,从接收到客户端请求的第一个字节到发送响应的最后一个字节所经过的时间,用于衡量从客户端的角度看请求的总时长,包括在服务器上处理请求的时间和网络传输时间

  • $upstream_response_time 是从 Nginx 代理请求到上游服务器(如后端应用服务器)并接收到上游服务器的响应所花费的时间

  • $body_bytes_sent 传输给客户端的响应主体的字节数,不包括响应头的字节数

# 开启步骤

  • 编辑nginx.conf配置文件,在http{}段中注释 access_log off; 并新增或修改 log_format 配置为:
http {
    ...
    log_format main  '{'
        '"@timestamp":"$time_local","remote_user":"$remote_user",'
        '"http_cookie":"$http_cookie","host":"$http_host",'
        '"remote_addr":"$remote_addr","http_x_forwarded_for":"$http_x_forwarded_for",'
        '"http_user_agent":"$http_user_agent",'
        '"request":"$request","status":"$status","request_time":$request_time,'
        '"body_bytes_sent":"$body_bytes_sent","http_referer":"$http_referer",'
        '"upstream_addr":"$upstream_addr","upstream_status":"$upstream_status","upstream_response_time":$upstream_response_time,'
        '"gzip_ratio":"$gzip_ratio","args":"$args"'
    '}';
    ...
}
  • 找到OA所属server段,新增配置access_log logs/seeyon.log main;
server {
    ...
    listen 80;
    server_name xt.seeyon.com;
    access_log logs/seeyon.log main;
    charset utf-8;
    ...
}
  • 修改完成后,执行 sbin/nginx -t 检查配置文件是否正确,正确后执行sbin/nginx -s reload 热加载配置文件,access日志为 nginx/logs/seeyon.log
编撰人:wangyxyf