Nginx日志文件的配置

Nginx日志文件的配置


          Nginx的日志文件,默认在Nginx程序安装目录的logs二级目录下。   

          与Nginx日志相关的指令有两条

          log_format,用来设置日志的记录格式。

          Access_log,用来指定日志文件的存放路径、格式和缓存大小。

          这两条指令在Nginx配置文件中,可以在http{……}之间,也可以在虚拟主机之间,即server{……}之间。


          Log_format指令

          用来设置日志文件的记录格式,语法如下

log_format name format[format ……]

          其中,name表示定义的格式名称,format,表示定义的格式样式。

          Log_format有一个默认的、无须设置的combined日志格式设置,相当于Apache的combined日志格式,如下

log_format combined '$remote_addr - $remote_user [$time_local]'
'"$request" $status $body_bytes_sent'
'"$http_referer" "$http_user_agent"';

          也可以自定义日志的记录格式,注意,log_format指令设置的name名称,在Nginx配置文件中,是不能重复的。


          如果,将Nginx服务器作为Web服务器,唯一负载均衡设备、Squid、Nginx反向代理之后,就不能获取到客户端的真实IP地址了。

          原因,经过反向代理之后,由于在客户端和Web服务器之间,增加了中间层,因此,Web服务器无法直接拿到客户端的IP,通过$remote_addr变量拿到的是反向代理服务器的IP地址。

          但是,反向代理服务器在转发请求的http头信息中,可以增加X-Forwarded-For信息,用以记录原有的客户端IP地址和原有客户端请求的服务器地址。

          此时,需要用log_format指令来设置日志格式,让日志记录X-Forwarded-For信息中的IP地址,即客户的真实IP。

          比如,创建一个名为mylogformat的日志格式,再用$http_x_forwarded_for变量记录用户的X_Forwarded-For IP地址。

log_format mylogformat '$http_x_forwarded - $remote_user [$time_local]'
'"$request" $status $body_bytes_sent'
'"$http_referer" "$http_user_agent"';

          参数说明

          $remote_addr——用来记录IP地址

          $http_x_forwarded_for——用来记录IP地址

          $remote_user——用来记录远程客户端用户名称

          $time_local——用来记录访问时间与时区

          $request——用来记录请求URL与http协议

          $status——用来记录请求状态,比如,成功时状态为200,页面找到时状态为404等

          $body_bytes_sent——用来记录发送给客户端的文件主体内容大小

          $http_referer——用来记录是从哪个页面链接访问过来的

          $http_user_agent——用来记录客户端浏览器的相关信息



          Access_log指令

          指定日志文件存放路径,语法如下

access_log path [format[buffer=size | off]]

          参数说明

          path——表示日志文件的存放路径。

          Format——表示使用log_format指令设置的日志格式的名称。

          Buffer=size——表示设置内存缓冲区的大小,比如,可以设置buffer=32k。

          如果不记录日志,可以使用如下指令关闭日志记录

access_log off;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值