如何将 nginx 配置为 apache tomcat 服务器的负载均衡器

在为 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