【发布时间】:2011-01-20 15:45:55
【问题描述】:
我有一个网站设置了 nginx 作为运行 php 的 apache 2.2 的反向代理。从 apache 和 php 的角度来看,所有请求的 IP 地址都是 nginx 服务器。我希望 php 看到与 nginx 看到的相同的远程 IP。
Nginx 设置一个头 X-Real-IP ,其中包含 nginx 看到的远程 IP。我尝试在 apache conf 中做这样的事情:
SetEnvIf ^X-Real-IP$ "(.+)" REMOTE_ADDR=$1
我希望我可以设置 REMOTE_ADDR 环境变量,当 php 最终被调用时,它会看到 nginx 看到的远程 IP。我认为php代码是这样做的:
$_SERVER['REMOTE_ADDR']
无论如何,这是行不通的。不能在apache配置文件中设置REMOTE_ADDR吗?
【问题讨论】: