使用nginx作为反向代理时,在Apache上获取正确的SERVER_ADDR

(见下面的编辑)

我有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,有以下几种可用选项:

  1. Nginx监听192.168.99.1端口80,而Apache监听除80以外的其他端口(例如端口8080)上的192.168.99.1,

  2. Nginx监听端口80上的192.168.99.1和Apache监听端口80上的127.0.0.1(同一端口)

选项2的缺点是你以前的问题。 而对于选项1,除了某些防火墙规则外,您不应该有任何主要的缺陷,以确保客户端不直接连接到Apache端口。