您好,匿名用户
随意问技术百科期待您的加入

nginx前端反代,后端apache如何获取访客的真实IP?

+2 投票

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-...
本人遇到相同的问题,请教一下,谢谢

用户头像 提问 2012年 12月1日 @ Dr. Mundo 上等兵 (281 威望)
分享到:

1个回答

+1 投票
 
最佳答案

这个要求有点苛刻啊 ,如果apache能改,就用mod_rpaf;

不能,简单一点吧,直接套一个 index.php 然后赋值 $_SERVER['REMOTE_ADDR'] , 再调用真实的php代码 ;

用户头像 回复 2012年 12月1日 @ hacker 上等兵 (362 威望)
选中 2013年 2月4日 @Saber
直接使用mod_rpaf比较好
提一个问题:

相关问题

0 投票
1 回复 34 阅读
0 投票
1 回复 30 阅读
用户头像 提问 2013年 12月23日 @ Ares 上等兵 (353 威望)
0 投票
1 回复 43 阅读
+2 投票
1 回复 53 阅读
0 投票
1 回复 71 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...