nginx log_format用来设置nginx请求日志纪录格式
nginx.conf
# 添加$request_body参数
log_format log_format_name_1 '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'"$request_body" $request_time $upstream_response_time';
# json 格式,用于日志监听处理,可filebeat 监听日志记录到redis
log_format json '{"@timestamp":"$time_local","client":"$remote_addr","domain":"$host","host":"$server_addr","method":"$request_method","request_url":"$request_uri",'
'"url":"$uri","status":"$status","scheme":"$scheme","http_version":"$server_protocol",'
'"size":"$body_bytes_sent","request_body":"$request_body","ua": "$http_user_agent","referer": "$http_referer",'
'"http_x_forwarded_for":"$http_x_forwarded_for","request_time":"$request_time","upstream_response_time":"$upstream_response_time"}';
./vhost/*.conf
# 注意一定要在后面带日志格式名称
access_log /alidata/log/nginx/*.access.log log_format_name_1;
参数说明
$remote_addr #记录访问网站的客户端ip地址
$remote_port # 客户端的port
$remote_user # 如果nginx有配置认证,该变量代表客户端认证的用户名
$time_local #记录访问时间与时区
$request #用户的http请求起始行信息,包括方法名、请求地址、http版本
$status #http状态码,记录请求返回的状态码,例如:200、301、404等
$body_bytes_sent #服务器发送给客户端的响应body字节数
$http_referer #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
$http_user_agent #记录客户端访问信息,例如:浏览器、手机客户端等
$http_x_forwarded_for #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
$request_body # post上传的数据
$request_time # 整个请求的总时间
$upstream_response_time # 请求过程中,和php-fpm的交互时间
$args # 请求中的参数,如www.123.com/1.php?a=1&b=2的$args就是a=1&b=2
$content_length # HTTP请求信息里的”Content-Length”
$conten_type # HTTP请求信息里的”Content-Type”
$document_root # nginx虚拟主机配置文件中的root参数对应的值
$document_uri 或 $uri # 当前请求中不包含指令的URI,如www.123.com/1.php?a=1&b=2的$document_uri就是1.php,不包含后面的参数
$request_uri # 请求的链接,包括和args
$host # 主机头,也就是域名
$http_cookie # 客户端的cookie信息
$request_body_file # 做反向代理时发给后端服务器的本地资源的名称
$request_method # 请求资源的方式,GET/PUT/DELETE等
$request_filename # 当前请求的资源文件的路径名称,相当于是document_uri的组合
$scheme # 请求的协议,如ftp,http,https
$server_protocol # 客户端请求资源使用的协议的版本,如HTTP/1.0,HTTP/1.1,HTTP/2.0等
$server_addr # 服务器IP地址
$server_name # 服务器的主机名
$server_port # 服务器的端口号