我们的家庭设置由两个 Linux 网络服务器组成,它们位于一个静态 IP 上。我的服务器目前使用标准 HTTP(S) 端口。我朋友的服务器使用非标准端口来解决这个问题。我们两个都设置了 URL。
我很好奇我是否可以在我的服务器上配置 Apache,以透明的方式将任何指向我朋友的 URL(在标准端口上)的连接重定向或代理到他的服务器。我知道我可以重写 URL,但我不熟悉规则,所以我想知道我是否可以使用 mod_proxy 通过我的服务器将连接发送到另一台机器。我做过类似的事情,但涉及代理所有传入连接。
这可能吗?谢谢,如果这个问题已经得到回答,我很抱歉;我不确定要搜索什么。
答案1
您还可以使用虚拟主机并将 Apache 设置为反向代理。这是我在工作的地方的设置。
a.domain.com -> ProxyPass http://192.168.1.101
b.domain.com -> ProxyPass http://192.168.1.102
查看 ProxyPass 和 ProxyPassReverse 的文档。
如果您只是为两者执行基于名称的虚拟主机,那么您可以在虚拟主机定义中添加类似这样的内容(或者如果您的盒子将托管 apache,则将 localhost 替换为您的 IP):
<Location />
ProxyPass http://192.168.1.101
ProxyPassReverse http://192.168.1.101
</Location>
然后在你朋友的虚拟主机配置中
<Location />
ProxyPass http://192.168.1.102
ProxyPassReverse http://192.168.1.102
</Location>
如果您不想让您的朋友更改防火墙规则、服务设置等,您还可以将端口添加到 ProxyPass 指令。或者您甚至可以成为另一个外部 IP 地址的反向代理。