Tomcat Web 应用程序高可用性

Tomcat Web 应用程序高可用性

我已经设置了 apache-tomcat 集群(Ubuntu 服务器),并且我使用了 tomcat 支持的集群技术,并遵循 mod_jk关联清晰易懂。

我在我的局域网中完成了这个任务,three computers 1 as LB and other two as tomcat web servers一旦我对设置完全满意,我就想将其用于生产。

我点击了许多链接,我粘贴的链接是其中之一,我在不同的物理机器上配置了它。配置是successful,我觉得设置起来很容易。我检查了停止一个 tomcat web 服务器,它立即开始向另一个 web 服务器发送请求。据我所知,我很清楚这个配置同时支持 HA 和 LB。

以下是我的 apache tomcat 集群详细信息:


1 Load Balancer(192.168.1.100)
2 web Servers(192.168.1.101, 192.168.1.102)

On all the three servers, I installed apache2 & tomcat6 and configured tomcat to run on port 80 with mod_jk on all the servers.

Load Balancer:

Configured apache2 and tomcat with mod_jk setup(both are running on port 80)
As per the link I setup workers.properties with same default ports(as I'm using different machines)


Web Servers:

Let Actual site: www.mydomain.com which is pointing to LB
Configured apache2 and tomcat with mod_jk setup(both are running on port 80)

I can access web application by pointing the browser to following:
http://192.168.1.101/myapp
http://192.168.1.102/myapp

In either of the web servers I configured tomcat virtual hosting with actual site name(www.mydomain.com) as Host Name

我在使用 tomcat jsp 应用程序时遇到了问题。在任何 Web 服务器上,如果myapp目录从 webapps 中删除,负载平衡器仍会重定向到该 Web 服务器,而用户必须面对404错误页面,apache 和 tomcat 都无法识别该错误页面并将其重定向到其他可用的 Web 服务器。

当 webapps 中请求的应用程序 (myapps) 在 Web 服务器上不可用时,有没有任何技术可以将客户端请求重定向到集群中的其他 Web 服务器?

谢谢你!

更新:1

workers.properties尝试在中使用下面的 worker 指令load balancer。现在,当删除 webapps404时不会显示错误页面,但会显示错误(这通常在 tomcat 停止时显示)。但是当删除 myapps 时仍然无法重定向到其他可用服务器。myapp503

worker.<worker-name-here>.fail_on_status=-404,-500,503

答案1

我强烈建议使用专为负载平衡而设计的工具,例如 haproxy。您可以定义后端检查,从而非常灵活地避免将请求发送到不可用的应用程序。

您的解决方案也不是 HA,因为负载均衡器是 SPOF(单点故障)。您可能需要添加另一台机器并使用 keepalived 进行故障转移。

HAproxy 可以在您想要的任何端口上运行,您甚至可以平衡不同类型的流量,不仅仅是 http,同时配置前端(服务平衡入口点)和后端(服务实例和平衡行为的容器)。您可以在此处查看示例:http://www.tomcatexpert.com/blog/2010/07/12/trick-my-proxy-front-tomcat-haproxy-instead-apache

对于故障转移部分,我会使用 keepalived。它会检查您的活动负载均衡器是否可用,如果不可用,则将故障转移到辅助计算机,浮动您的虚拟 IP 地址。

您可以查看此链接中的示例:http://www.howtoforge.com/setting-up-a-high-availability-load-balancer-with-haproxy-keepalived-on-debian-lenny

相关内容