Nginx+tomcat实现负载均衡 部署多个tomcat

本文详细指导如何在本地安装并配置多个Tomcat实例,通过nginx实现轮询、权重和ip_hash策略的负载均衡,包括环境变量设置、端口调整、tomcat首页修改以及nginx的配置和启动停止操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载并安装nginx和tomcat

nginx下载地址,选择版本1.12.2
http://nginx.org/en/download.html
tomcat下载,选择版本9.0.29
http://tomcat.apache.org/
注意:以上都是下载的解压版

在本机或虚拟机上安装多个tomcat

安装tomcat

这里示例在本机上安装三个tomcat
解压并修改tomcat文件夹名即可。图中圈中部分,忽略其他的tomcat
在这里插入图片描述

配置tomcat

添加环境变量CATALINA_HOME,我这里因为还有其他tomcat所以配置的较多
在这里插入图片描述
在环境变量PATH中将刚才添加的三个CATALINA_HOME的lib和bin目录添加进去
%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

在这里插入图片描述
保存后分别进入三个tomcat的bin目录,记事本打开catalina.bat和startup.bat,将其中的CATALINA_HOME全部替换为上述添加的对应的环境变量,比如我这里第一个tomcat对应的环境变量是CATALINA_HOME2,就将文件中所有的CATALINA_HOME替换为CATALINA_HOME2。
在这里插入图片描述
上述修改完成后就可以分别成功启动了,但是因为默认都是使用的8080,8005和8009端口,还要进入tomcat的conf目录,修改server中的端口配置,我这里分别将另外两个tomcat的端口设置为了8081,8015,8019和8083,8035,8039(8082端口被我本机的其他应用占用了)

修改tomcat首页title

为了区分不同的tomcat,我们还需要将tomcat的webapps/ROOT/index.jsp文件修改一下,将该文件的title标签值修改为对应的端口号,这样我们待会可以一下子看出tomcat切换了
在这里插入图片描述
启动三个tomcat,可以看到页面的title已经显示为了端口号
在这里插入图片描述

安装并配置nginx

安装nginx

将nginx的压缩包解压即可安装nginx
解压出来的路径如图所示
在这里插入图片描述

配置nginx

nginx的默认端口为80,打开nginx下的/conf/nginx.conf文件
在server一栏可以看到端口配置,这里因为本机80端口已被其他程序占用,修改为8888端口
在这里插入图片描述
同时还需要配置nginx的负载均衡策略,并且指定需要分发哪些tomcat的服务
这里创建一个upstream,设定其策略为权重型,权重越大分配访问次数越多。
其中upstream后的blance为自定义的服务名,你可以取名为任何,但是不能出现下划线
同时要保证你在proxy_pass后跟的就是你定义的服务名,如下所示
完整配置文件如下,这里已删除部分注释内容
文件server后的IP指的是tomcat所在服务器IP


#user  nobody;
worker_processes  1;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    upstream blance{
         server IP:8080 weight=1;
         server IP:8081 weight=1;
         server IP:8083 weight=3;
    }

    server {
        listen       8888;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://blance;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

实际上nginx的负载均衡策略有3种,这里不做详谈,大致了解和学习地址可见文章最后

启动nginx

window版

双击目录下的nginx.exe即可
或者在cmd模式下,进入nginx目录
输入命令 start nginx 或者 nginx.exe
在这里插入图片描述
停止nginx命令
#快速停止,不保存相关信息
nginx.exe -s stop
#完整有序停止,保存相关信息
nginx.exe -s quit

linux下nginx的相关命令

启动
service nginx stop

systemctl stop nginx
重启
service nginx reload
systemctl restart nginx
关闭
service nginx stop
systemctl stop nginx
开机自启
systemctl enable nginx
取消开机自启
systemctl disable nginx

测试

nginx启动后
进入local:8888,如下图可以看到,服务分配给了8080端口的tomcat
在这里插入图片描述
再次刷新发现服务又分配给了8083的tomcat。当访问次数达到一定数量后,其分配比例就会无限靠近我们之前设置的权重比例
在这里插入图片描述
到此tomcat+nginx的负载均衡就实现了

nginx的负载均衡策略

轮巡

将客户端发起的请求,平均的分配给每一台服务器

upstream 名称 {
         server 172.16.80.124:8080;
         server 172.16.80.124:8081;
         server 172.16.80.124:8083;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

权重

会将客户端的请求,根据服务器的权重值不同,分配不同的数量

upstream 名称 {
         server 172.16.80.124:8080 weight=1;
         server 172.16.80.124:8081 weight=10;
         server 172.16.80.124:8083 weight=1;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

ip_hash

基于发起请求的客户端的ip地址不同,始终会将请求发送到指定的服务器上

upstream 名称 {
         ip_hash;
         server 172.16.80.124:8080;
         server 172.16.80.124:8081;
         server 172.16.80.124:8083;
    }
server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_pass http://名称;
        }
}

详细的nginx学习可在如下网址观看,可以更加详尽的了解nginx
https://www.bilibili.com/video/BV1W54y1z7GM?p=14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wu@55555

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值