一个 IP 上有多个 Apache 服务器,使用端口 80?

一个 IP 上有多个 Apache 服务器,使用端口 80?

我想收集大家对以下情况的看法:

两个 Apache 服务器,A1 和 A2。

两台服务器都位于路由器后面,该路由器只能将端口 80 转发到一个 IP,那么如何管理在一个 IP 上托管不同域的两台服务器?

我研究过 mod_proxy,但没有成功,并且想知道是否可以安装任何“DNS 端口转发”功能来管理数据包。

例如 IP 地址是 87.166.55.44(假的,不要尝试:p)。

A1 托管 foo.com A2 托管 bar.com

端口 80 转发给 A1。A1 意识到这是对 bar.com 的请求,因此充当 A2 和路由器之间的代理。

我希望这是有意义的,并且会感激任何帮助!

答案1

从技术上讲,除非您的路由器有内置反向代理或某些第 7 层路由(据我所知,没有哪个路由器有此功能),否则这是不可能的。如果您真的想这样做,并希望使其可扩展,那么您将需要一个反向代理,该代理具有站点名称和代理位置的映射。

<VirtualHost *:80>
  ServerName www.domain-a1.com
  ProxyRequests Off
  ProxyPass http://servera1/
  ProxyPassReverse http://servera1/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.domain-a2.com
  ProxyRequests Off
  ProxyPass http://servera2/
  ProxyPassReverse http://servera2/
</VirtualHost>

这对于 SSL 站点不起作用,因为 SSL 协商在知道它适用于哪个站点之前发生,但随后切换 SSL 证书以传递给它们(先有鸡还是先有蛋)等等。

相关内容