您当前的位置: 首页 >  负载均衡

wu@55555

暂无认证

  • 3浏览

    0关注

    201博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

wu@55555 发布时间:2020-11-14 10:27:12 ,浏览量:3

下载并安装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

关注
打赏
1664985904
查看更多评论
立即登录/注册

微信扫码登录

0.0387s