上一节,咱们说到了让Nginx可以正确识别用户到底访问的是哪一个虚拟主机的域名,本章,咱们讨论一下,如何让Nginx可以记录来自客户端的真实IP地址。nginx
一、首先,咱们看一下httpd的访问日志,看看客户端的IP地址是哪个?apache
192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.0" 200 13
192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.0" 200 13
192.168.1.6 - - [29/Apr/2015:07:51:08 +0800] "GET / HTTP/1.0" 200 13服务器
二、很容易,咱们看到这个客户端的IP地址,实际上反向代理Nginx服务器的IP地址,这给之后作apache的日志分析的时候,代理很大的问题,所以,要解决这个问题,必须在Nginx的配置文件中,增长以下的指令。ide
proxy_set_header X-Forwarded-For $remote_addr代理
三、默认httpd的日志选项不能接收来自客户端的真实IP地址,只接收nginx反向代理传过来的IP地址,须要开启接收功能日志
四、按照下面的格式调整,httpd的日志记录格式orm
LogFormat "\"%{X-Forwarded-For}i\" %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedblog
五、调整httpd的虚拟主机的日志格式rem
CustomLog logs/bbs.g.cn-access_log combinedget
六、重启相关服务,使生效。