Nginx 和 Apache 使用时一个小问题的解决
我的这台服务器自从把 Nginx 配置成反向代理以来,一直有一个小问题困扰着我,就是做为后台的 Apache 的 Log 中显示的来访 IP 都是 127.0.0.1。也就是说,显示的都是本机的 IP,其实原来也很简单,Apache 收到的访问都是 Nginx 传递过来的。
这样一来,Awstats 这种靠分析 HTTP Log 的软件就不能正常工作了,虽然可以用如 Google Analytics 之类的应用代替,但总不是一个完美的解决。昨天偶然 Google 了一下,就给我找到了答案,答案相当的简单──安装一个 Apache 的 module 就可以了。
这个 module 叫做 mod_rpaf。
Module 很小,配置也很傻瓜,下载编译后只需要在 Apache 的配置文件(如 http.conf)里加上下面的语句就可以了。
# if DSO load module first:
LoadModule rpaf_module libexec/apache2/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 10.0.0.1
RPAFheader X-Forwarded-For
最后再检查一下 Nginx 的配置文件里有没有下面几行:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
有的话就一切傻瓜似的搞定,没有的话加上这三句一样会一切傻瓜似的搞定。我又可以继续用 Awstats 来做访问统计了。
RSS feed for comments on this post · TrackBack URI