在为 Apache Tomcat 服务器选择负载平衡解决方案时,有很多选择,Apache HTTPD 和 Nginx 是目前最常用的一些开源解决方案。
Nginx 是一种流行的开源 Web 服务器、负载均衡器和反向代理,以其高性能、稳定性、丰富的功能集、简单的配置和低资源消耗而著称。
本教程介绍了如何使用 Nginx 为 Apache Tomcat 服务器设置负载平衡。
作为准备工作,我们需要至少有两台装有 Apache Tomcat 服务器的主机并进行配置,才能看到负载均衡器的好处。
设置持久性或者粘性 Nginx 负载均衡器
如果 Tomcat 应用程序需要基本的会话持久性,也称为粘性会话,我们可以在 Nginx 中使用 IP 哈希负载平衡算法来实现它。
IP 散列使用访问者 IP 地址作为键来确定应选择哪个主机来为请求提供服务。
这允许访问者每次都被定向到同一服务器。
要在 Nginx 中配置会话持久性,请将 ip_hash
指令添加到 upstream
块。
upstream appcluster3 { server TOMCAT1_IP_ADDRESS:8080; server TOMCAT2_IP_ADDRESS:8080; ip_hash; } server { listen 80; server_name tomcat.onitroad.local www.tomcat.onitroad.local; location/{ proxy_pass http://appcluster3; } }
设置最少连接的 Nginx 负载均衡器
在本示例中,我们将介绍如何设置最少连接负载均衡器。
在这个算法中,传入的请求被发送到现有活动连接数最少的服务器。
为此,在上游顶部添加关键字least_conn
,如下所示
upstream appcluster2 { server TOMCAT1_IP_ADDRESS:8080; server TOMCAT2_IP_ADDRESS:8080; least_conn; } server { listen 80; server_name tomcat.onitroad.local www.tomcat.onitroad.local; location/{ proxy_pass http://appcluster2; } }
设置轮询 Nginx 负载均衡器
在此示例中,我们将介绍如何使用简单的循环负载均衡器构建名为“appcluster1”的集群。
让我们创建一个名为“lbd01.onitroad.local.conf”的新虚拟服务器块,或者我们可以编辑“nginx.conf”文件并修改“http”部分,如下所示:
# cat /etc/nginx/conf.d/lbd01.onitroad.local.conf upstream appcluster1 { server TOMCAT1_IP_ADDRESS:8080; server TOMCAT2_IP_ADDRESS:8080; } server { listen 80; server_name tomcat.onitroad.local www.tomcat.onitroad.local; location/{ proxy_pass http://appcluster1; } }
日期:2020-06-02 22:18:52 来源:oir作者:oir