我有一个 Apache 服务器位于a.com:9254 我想将 aycom:80 路由到 a.com:9254。这样,我就可以将我的所有服务放在 y.com 域下。
我尝试了代理。然而,在 Apache 中,所有请求似乎都来自同一个 IP。这导致我的安全系统失败。我无法改变它。我需要一个完全透明的解决方案。
也许 NAT 可以作为一个解决方案,但我缺乏足够的知识。
非常感谢。
答案1
apache 反向代理是满足您需求的最佳解决方案。您只需更改 a.com:9254 站点的 apache 日志格式以包含 X-Forwarded-For。
参见示例http://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog "logs/access_log" combined env=!forwarded
CustomLog "logs/access_log" proxy env=forwarded
另一个解决方案是在 aycom 上使用 iframe,并将 a.com:9254 站点嵌入 iframe 元素中。
答案2
路由仅用于第 3 层...(IP)。您说的是转发端口...这是通过“NATing”完成的
NATing 会改变 IP... 这可能不是您想要的。您应该在服务器“aycom”上设置“重定向”到“a.com:9254”。mod_rewrite 可以帮助您完成此操作。