xian123 发表于 2018-11-8 12:05:13

NGINX:日志配置

  log_format用来设置日志的记录格式:
  log_format name format
  name表示格式名称,format表示等义的格式。log_format有一个默认的无需设置的combined日志格式,相当于apache的combined日志格式,如下所示:
  log_formatcombined'$remote_addr - $remote_user[$time_local]'
  ' "$request"$status$body_bytes_sent'
  ' "$http_referer""$http_user_agent" ';
  如果nginx位于负载均衡器,squid,nginx反向代理之后,web服务器无法直接获取到客户端真实的IP地址了。$remote_addr获取反向代理的IP地址。反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用来记录客户端IP地址和客户端请求的服务器地址。如下所示:
  log_formatporxy'$http_x_forwarded_for - $remote_user[$time_local]'
  ' "$request"$status $body_bytes_sent '
  ' "$http_referer""$http_user_agent" ';
  参数注释如下:
  $remote_addr, $http_x_forwarded_for记录客户端IP地址
  $remote_user记录客户端用户名称
  $time_local记录访问时间
  $request记录请求的URL和HTTP协议
  $status记录请求状态
  $body_bytes_sent记录发送给客户端文件内容大小
  $http_referer记录从哪个页面链接访问过来的
  $http_user_agent记录客户端浏览器相关信息
  access_log用来指定日志文件路径:
  access_logpath]
  buffer设置内存缓存区大小。
  不记录日志:
  access_log off;
  使用默认combined格式记录日志:
  access_loglogs/access.log或 access_loglogs/access.log combined;
  使用自定义的日志格式:
  access_loglogs/access.logproxybuffer=32k;
  每个server_name对应一个日志文件:
  access_loglogs/$server_name.logcombined;
  日志文件含有变量,需注意一下问题:
  buffer不会被使用
  对于每一条日志记录,都将是先打开文件,再写入日志,然后关闭。可以使用open_log_file_cache来设置日志文件缓存(默认是off),格式如下:
  open_log_file_cachemax=n | off
  参数注释如下:
  max:设置缓存中的最大文件描述符数量,采用LRU算法
  inactive:设置存活时间,默认是10s
  min_uses:设置日志文件最少使用多少次后,该日志文件描述符记入缓存中,默认是1次
  valid:设置检查频率,默认60s

页: [1]
查看完整版本: NGINX:日志配置