Nginx日志

  • Nginx日志已关闭评论
  • 252 次浏览
  • A+
所属分类:linux技术
摘要

参数解释$remote_addr :记录访问网站的客户端IP地址
$remote_user :记录远程客户端用户名称
$time_local :记录访问时间与时区
$request :记录用户的 http 请求起始行信息(请求方法,http协议)
$status :记录 http 状态码,即请求返回的状态,例如 200 、404 、502 等
$body_bytes_sent :记录服务器发送给客户端的响应 body 字节数
$http_referer :记录此次请求是从哪个链接访问过来的,可以根据 referer 进行防盗链设置
$http_user_agent :记录客户端访问信息,如浏览器、手机客户端等
$http_x_forwarded_for :当前端有代理服务器时,设置 Web 节点记录客户端地址的配置,此参数生效的前提是代理服务器上也进行了相关的 x_forwarded_for 设置


nginx.conf中有关访客日志定义如下

#log_format #创建日志格式,名为main log_format main '$remote_addr - $remote_user [$time_local] "$request" '  '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';  #access_log #设置日志格式为main access_log logs/access.log main;  

参数解释

$remote_addr :记录访问网站的客户端IP地址
$remote_user :记录远程客户端用户名称
$time_local :记录访问时间与时区
$request :记录用户的 http 请求起始行信息(请求方法,http协议)
$status :记录 http 状态码,即请求返回的状态,例如 200 、404 、502 等
$body_bytes_sent :记录服务器发送给客户端的响应 body 字节数
$http_referer :记录此次请求是从哪个链接访问过来的,可以根据 referer 进行防盗链设置
$http_user_agent :记录客户端访问信息,如浏览器、手机客户端等
$http_x_forwarded_for :当前端有代理服务器时,设置 Web 节点记录客户端地址的配置,此参数生效的前提是代理服务器上也进行了相关的 x_forwarded_for 设置

备注:
$remote_addr 可能拿到的是反向代理IP地址
$http_x_forwarded_for 可以获取客户端真实IP地址

 

#当你的nginx访客日志,需要记录更多的client请求信息,你可以来这里找,添加更多的变量,加入到如下的日志格式化参数中

https://nginx.org/en/docs/

https://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_addr

 

关闭日志功能

有时候在代理服务器上,转发服务器上,nginx日志可能不用记录,节省磁盘IO的资源 http {      log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"';      #access_log  /var/log/nginx/access.log  main; #注释设置日志     access_log off;  #关闭日志  }

 单个虚拟机,独立设置日志

写在各自的虚拟主机的配置文件中: # log_format 这个参数和server{}平级 # 创建的日志格式名每个虚拟主机都要不同,也不能跟主配置文件的相同 # [main2]日志格式名不能带符号 log_format  main2  '$document_uri  $remote_addr - $remote_user [$time_local] "$request" '                       '$status $body_bytes_sent "$http_referer" '                       '"$http_user_agent" "$http_x_forwarded_for"'; server {     # 开启日志功能,以及存放路径,access_log参数写在server{}内     access_log  /var/log/nginx/dnf.linux0224.cc.access.log  main2;     listen 80;     server_name dnf.linux0224.cc; # 这里写的是域名          charset utf-8;     location /  {         root  /www/dnf/;         index  index.html;     }  }

#单独设置日志后,nginx.conf配置文件的日志设置就不对此生效了,其他没有单独设置日志的虚拟主机依然生效

错误日志

开启error级别的错误日志
# 单独给的虚拟主机设置错误日志,eroor级别 ,配置如下 # 支持写入http{} server{} log_format main2
'$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; server { access_log /var/log/nginx/lol.linux0224.cc.access.log main2; error_log /var/log/nginx/lol-error.log error; #设置error级别日志保存的文件路径    listen 80; server_name lol.linux0224.cc; charset utf-8; location / { root /www/lol/; index index.html; } }

错误页面优化,error_page模块

支持写在http{} server{}下,跟单独设置日志机制相互作用 # error_page  响应状态码    相对路径的html文件/ 填入url ;   error_page 404             /404.html;  #支持静态文件以及URL error_page 500 502 503 504 /50x.html; #支持静态文件以及URL

 

 
 
此页面的语言为英语
 
翻译为中文(简体)

 
 
 
 
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语