(见下面的编辑)
我有nginx转发请求到Apache 2.4,我得到127.0.0.1作为SERVER_ADDR的值。 正确的IP仅在HTTP_X_SERVER_ADDRESS上可用。
我已经安装了rpaf模块,但它只修复了REMOTE_ADDR值(以前也是127.0.0.1,现在是正确的远程IP)。
有没有办法在SERVER_ADDR上获得正确的服务器IP?
我在nginx.conf中有以下configuration:
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Server-Address $server_addr; proxy_set_header Host $host;
编辑 :我只是意识到,我可以使用proxy_pass [my-server-ip]
而不是proxy_pass 127.0.0.1
,有没有什么缺点呢?
对于相同主机和单个公共IP地址(例如192.168.99.1)中的nginx-to-apache,有以下几种可用选项:
Nginx监听192.168.99.1端口80,而Apache监听除80以外的其他端口(例如端口8080)上的192.168.99.1,
Nginx监听端口80上的192.168.99.1和Apache监听端口80上的127.0.0.1(同一端口)
选项2的缺点是你以前的问题。 而对于选项1,除了某些防火墙规则外,您不应该有任何主要的缺陷,以确保客户端不直接连接到Apache端口。