运维技巧-Nginx日志格式
1、说一说
当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式。
2、Nginx日志字段
$remote_addr
记录客户端IP,但她的值不是客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,如果中间没有任何代理,那么网站的web服务器(nginx或apache)就会把remote_addr设置为你的机器IP。如果你用了某个代码,那么你的浏览器会先访问这个代理,然后在由这个代理了转发到网站,这样web服务器就会把remote_addr设为这个台代理机器的IP
$http_x_forwarded_for
与上面的有点相似,也是记录客端户IP。当你使用了代理时,web服务器是不知道你的真实IP,为了避免这个情况,代理服务器通常会增加一个x_forwarded_for的头信息,把连接她的客户端IP加到这个头信息里,这样就能保证网站的web服务器能获取到真实IP
$temote_user
记录客户端用户名称
$time_local
记录访问时间和时区
$request
记录请求的 url和http协议
$status
记录请求状态,成功是200
$body_bytes_sent
记录发送给客户端文件主题内容大小
$http_referer
记录从那个页面链接访问过来的
$http_user_agent
记录客户端浏览器的相关信息
3、Nginx日志格式配置
上面介绍了各种Nginx日志格式字段,下面我就来说说,具体怎么配置。
其实也很简单,nginx的主配置文件,/etc/nginx/nginx.conf,http{}中修改或添加一下内容
log_format main '[$remote_addr][$remote_user][$time_iso8601][$request]'
'[$status $body_bytes_sent][$http_referer]'
'[$http_user_agent][$http_x_forwarded_for][$request_body]';