运维技巧-Nginx日志格式

时间:2023-01-30 08:59:04

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]';