我之前已经设置了它,它在其他服务器上工作,但我不能为我的生活弄清楚为什么它不起作用,虽然我有一个可能的理论。 所有这些都在Amazon Web Services中。
因此,在这种情况下,我们正在使用IIS 8的Windows服务器上托pipe主站点。该博客位于运行Ubuntu / Apache 2.4.6的另一台服务器上以托pipeWordPress。 主站点位于VPC中,用于支持多个IP地址。 该博客是VPC之外的。
其他设置(工作)都使用nginx作为反向代理服务器而不是IIS,并且代理和服务器在同一个VPC中。 这真的很重要吗?
从工作configuration:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 172.31.xx/32
非工作configuration:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 54.2xxx
我也尝试过这样的变化:
RemoteIPTrustedProxy 54.2xxx # tried /32 and /24 RemoteIPInternalProxy 54.xxx/32 # also tried /24 RemoteIPTrustedProxy www...
使用一个testingPHP页面来查看它是否工作,我从print_r($_SERVER);看到这个print_r($_SERVER); :
[HTTP_X_FORWARDED_BY] => www..... [HTTP_X_FORWARDED_FOR] => xxxx:x [SERVER_ADDR] => 10.230.xx [SERVER_PORT] => 80 [REMOTE_ADDR] => 54.2xxx
而PHP的getheaders函数的输出结果如下:
[X-Forwarded-By] => www.... [X-Forwarded-For] => xxxx:x
mod_remoteip的文档将172.16/12列为Intranet IP地址。 模块是否真的拒绝正常工作,因为它没有检测到内部网块? 在错误日志中我也找不到任何东西。
这样做似乎很愚蠢,但这是唯一合理的理论。
另外值得注意的是,因为我知道有人会问:我们在build立博客服务器之后build立了VPC,而我们还没有完成在VPC内部重新启动它的工作。 我试图让它在没有它的情况下工作,但如果这是问题,那么我们会考虑这样做。
谢谢。