![服务器发生错误时如何使用 Apache 反向代理进行重定向](https://linux22.com/image/677879/%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%91%E7%94%9F%E9%94%99%E8%AF%AF%E6%97%B6%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Apache%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E8%BF%9B%E8%A1%8C%E9%87%8D%E5%AE%9A%E5%90%91.png)
我在网络上有几个 http 和游戏服务器,目前使用 Apache2 反向代理来分配域和机器之间的流量。
我发现一台机器的流量比其他机器多得多。我想知道从哪里开始使用我的虚拟主机将多余的流量引导到另一台机器。
本质上,当 192.168.1.5 无法访问或负载过重时,我想将这些流量发送到 192.168.1.6。
我尝试过搜索,但显然我使用的术语都不对。抱歉,我对此还很陌生。我还在学习,非常感谢任何提示或指点。
多谢你们!
答案1
好的,我想我已经找到了自己的答案。
通过使用最新版本的 Apache 和“FallbackResource”指令,我们可以在主目标不可用的情况下为客户设置备用目标。更多信息可通过下面的 Apache.org 找到... https://httpd.apache.org/docs/2.4/mod/mod_dir.html#fallbackresource
基本上,只需在 VirtualHost 括号内添加一行,并将单个可解析位置作为唯一参数即可。就像这样...
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource http://192.168.1.5/overflow.html
</VirtualHost>
在我的具体案例中,我还使用了 ProxyPass 和 Reverse Proxy Pass,每个 VirtualHost 都有一个单独的服务器,因此我将其简化了一些。我相信它仍然应该是一个有效的例子。
答案2
如我错了请纠正我 ..
1.从您的问题中我了解到您使用一个带有多个虚拟机的主机节点。
2.另外,据我了解,您通过在每个虚拟机的主机节点上创建代理虚拟主机来通过 Apache 代理路由流量。
3.从您的示例中,我假设 VM1(192.168.1.5)和 VM2(192.168.1.6)基本上“相同”,可以看作是彼此的克隆。
4. 您想要找到一种方法,如果 VM1 发生故障或过载,则可以将流量路由到 VM2
如果 1、2、3 代表您的情况,而 4 是您想要的,那么解决方案就很简单了……您只需为主要 VM 分配尽可能多的资源即可。使用同一节点上的第二个 VM 无法解决问题。
一个好的解决方案是将 VM1 留在实际服务器上,并将克隆的 VM2 迁移到另一台具有附加资源的服务器。
然后在第一台服务器上...在主机节点 apache 代理和 VM1 之间,您可以安装您选择的负载均衡器。
然后..根据负载均衡器策略,你可以将流量路由到 VM1 或将流量路由到第二台服务器 VM2
希望能帮助到你 ..