如何通过nginx proxypass将环境变量传递给Apache?

如何通过nginx proxypass将环境变量传递给Apache?,nginx,Nginx,这是我用来做代理传递的: location ~* \.php$ { proxy_pass http://127.0.0.1:8080; } 在此之后,$\u服务器['REMOTE\u ADDR']在php中不再可用。nginx将请求传递给Apache后,我需要做什么才能使这些$\u服务器变量在php中可用?您需要在Apache和nginx中安装mod\u rpaf,添加以下内容: proxy_set_header X-Real-IP $remote_addr; proxy_set_hea

这是我用来做代理传递的:

location ~* \.php$ {
   proxy_pass http://127.0.0.1:8080;
}

在此之后,$\u服务器['REMOTE\u ADDR']在php中不再可用。nginx将请求传递给Apache后,我需要做什么才能使这些$\u服务器变量在php中可用?

您需要在Apache和nginx中安装mod\u rpaf,添加以下内容:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

还有其他我应该发送的邮件头吗?像其他$\u服务器变量一样?这在文档中的什么地方,你能给我指一个资源吗?我不认为你会在Nginx文档中找到一个参考,上面说“这是你应该如何代理Apache的”。但是,通过了解这两个服务器的工作方式,您将看到需要激活mod_rpaf,并且需要通过nginx传递远程ip,才能正确地将这些特定项传递给Apache。阅读mod_rpaf。至于其余的$u服务器变量,没有什么特别需要做的。实际上,您是在暗示您的$_服务器变量已完全消失,而不是远程ip传输不正确吗?我刚刚检查了一下,看起来所有变量实际上都已传递/可用。我想mor_rpaf已经开始运行了。我想我遇到的问题是,因为我在转发,远程地址是127.0.0.1。是否有一种方法可以用HTTP_X_FORWARDED_“覆盖”此值?是的,有。。。安装mod_rpaf并按说明传递标头。