nginx日志格式通过log_format命令来定义的。自定义格式的模块:ngx_http_log_module
示例:
log_format log ‘$remote_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” $http_x_forwarded_for’; access_log /2016/08/nginx-access.log;
log_format指令:
语法 log_format name string …
默认值 combined “…”
使用字段 http
参数说明:
$remote_addr 和 $http_x_forwarded_for:记录客户端的ip地址。
$remote_user:记录客户端用户名称。
$time_local:记录访问时间与时区。
$request:记录请求的URL与HTTP协议。
$status:记录请求状态;成功是200。
$body_bytes_sent:记录发送给客户端文件主体内容大小。
$http_referer:记录从那个页面链接访问过来的。
$http_user_agent:记录客户端浏览器的相关信息。
access_log指令:
语法 access_log path [ format [ buffer = size ]]
access_log off
默认值 logs/access.log combined
使用字段 http
server
location
if in location
limit_except
记录的日志格式如下:
53.16.49.155 – – [12/Dec/2016:18:05:02 +0800] “GET /2016/08/nginx-access/ HTTP/1.1” 200 56328 “-” “Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”
如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。 $remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录 客户端IP地址和客户端请求的服务器地址。
如下所示:
log_format porxy ‘$http_x_forwarded_for – $remote_user [$time_local] ‘
‘ “$request” $status $body_bytes_sent ‘
‘ “$http_referer” “$http_user_agent” ‘;
原创文章,作者:赛福,如若转载,请注明出处:https://www.safecdn.cn/203.html
本站不销售、不代购、不提供任何支持,仅分享网络信息,请自行辨别,请遵纪守法、文明上网。