两台服务器,两个域名,一个 IP。mod_proxy 初学者

两台服务器,两个域名,一个 IP。mod_proxy 初学者

我运行两个虚拟 Web 服务器(均在 Debian 上运行 apache2)。我只有一个外部 IP,但有两个域,并且我希望每个服务器都有一个域。

我知道我需要一个反向代理,并且我在“主服务器”上启用了 mod_proxy 和 mod_proxy_http 模块。我需要在“辅助服务器”上启用任何功能吗?

我也知道我需要在虚拟主机文件中写一些东西,但是写什么呢?在主服务器上,我有一个用于其中一个域的虚拟主机文件,还有一些用于子域的虚拟主机文件。我希望 domain1.tld 转到主服务器(端口 80 转发到它,这样就可以了),而 domain2.tld 转到另一台服务器(内部 IP 192.168.0.x)。不需要将端口转发到它,对吧?那么,要添加什么以及在哪个虚拟主机文件中?还是添加一个新的?其他问题建议添加 ProxyPass 和 ProxyPassReverse,但我还是迷茫了,我只是不明白 apache 文档。

提前致谢

答案1

你可能想看看使用HAProxy,它可以很好地完成这类事情。

简而言之,您将创建第三个 VM,它运行 HAProxy 并具有您的 IP 地址。您的 HAProxy 配置将决定在后端将请求发送到哪个 Apache 实例。

看一下该网站,如果您想尝试一下,那么您可以提出更多问题。

答案2

单个 Apache 实例(例如一台物理机器)上有两个域,且只有一个 IP 地址,这种方式非常简单,称为Name Based Virtual Hosts

Apache 手册对此进行了很好的介绍,甚至您应该能够从这个页面中理解一些内容:http://httpd.apache.org/docs/2.0/vhosts/name-based.html

我对你试图用 mod-proxy 做的事情有点困惑。这似乎太复杂了,而且没有真正的理由。希望这能有所帮助。

答案3

听起来很像,虽然我还没有这样做过,但我不确定

答案4

您可以在一台服务器上运行多个服务器和一个域。

由于 Vhost 配置文件设置了域名和服务器名称,因此 Alias 或 Vhost 将在一台主服务器上接受不同的域名,因此一台服务器可以在一台服务器和 IP 上运行两个域名。优点:一台服务器运行多个域名限制资源(仅使用一台服务器为网站提供服务)

缺点:

如果您已经拥有来自主要域名的大量服务器使用量,那么添加更多服务器将无济于事。

其他解决方案:您需要一个负载平衡器,它位于服务器路由的前面,将域转发到防火墙后面的每个 IP,或者不是将单个 IP 地址转发到本地 IP。

这是我写的一篇关于设置不同域名托管的文章 http://www.gtwcmt.co.uk/virtual-host-creation-in-apache-windows/

相关内容