这篇文章页不错:
假如说我们现在的架构是,nginx做反向代理,apache做web服务器。那么我们怎么让我的web服务器的访问日志显示的是真实客户访问的IP呢?
正常情况下我们的访问日志显示的是反向代理服务器的地址,所以我们要做一定的修改让我们的web服务的访问日志显示真实访问者的IP地址。
需要做如下的调整:
比如说我现在有一台虚拟主机的配置如下:我们需要添加 proxy_set_header X-Forwarded-For $remote_addr;server {
listen 80 ; server_name big.bao.com; server_tokens off ; location / { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://big; access_log logs/big.access.log main; error_log logs/big.error.log; } expires 1d;
现在我们再修改一下web服务器的配置文件 vim /etc/httpd/conf/httpd.conf
把%h修改为%(X-Real-IP)
这样在我们的web服务器的访问日志就可以看到访问者的真实IP地址了,这样的话,就不会和之前一样看到的访问IP的地址都是代理服务器的IP