nginx前端反代,后端apache如何获取访客的真实IP?
Nginx反代已经写好,检查参数传递也没有问题:
server { listen 80; server_name www.mjj.com; location / { proxy_pass http://www.youjj.com; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log off; }
现在的问题是,我后端的php程序获取IP依靠变量$_SERVER['REMOTE_ADDR'],所以取得的是反代服务器的IP。
后端是apache是一个虚拟主机,所以改动后端可能性不大。
后端的php程序是加密的,也无法改动。
现在请问:有没有办法不改动程序把X-REAL-IP或HTTP_X_FORWARDED_FOR赋值到REMOTE_ADDR?譬如改动php.ini能不能实现?
谢谢,此问题被人发在hostloc via:
http://www.hostloc.com/thread-138304-...
本人遇到相同的问题,请教一下,谢谢
Aovri
11 years, 1 month ago
Answers
这篇文章中说了在nginx+apache类前后端搭建网站时获取访客真实ip的方法(这个获取IP的方法考虑得比较周全),不过也是要你修改PHP程序的: http://www.ithr.org.cn/blogs/blog1.ph...
哈哈,找到方法了,看这篇文章“mod_rpaf , 令 Nginx 后端的 Apache 获取到互联网 IP”: http://www.ithr.org.cn/blogs/blog1.ph...
Kim0.0
answered 11 years, 1 month ago