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-...
本人遇到相同的问题,请教一下,谢谢
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
这个要求有点苛刻啊 ,如果ap能改,就用mod_rpaf;
不能,简单一点吧,直接套一个 index.php 然后赋值 $_SERVER['REMOTE_ADDR'] , 再调用真实的php代码 ;
直接设置
proxy_set_header REMOTE_ADDR $remote_addr;不行么?$_SERVER['REMOTE_ADDR'] 是不能改动的 从哪里来的请求 这个地址就是哪里
像前面几位所说的方法 在你的加密的代码上面加一层壳子 赋个值是不错的方法