2、Tomcat集群实战,并用Nginx实现负载均衡(win环境)

2、Tomcat集群实战,并用Nginx实现负载均衡(win环境)

1、Tomcat的配置

1、系统环境变量配置:

首先要实现Tomcat的集群就得拥有多个tomcat,所以我在本地电脑下载了两个Tomcat,我这里使用的是Tomcat7,当然,配置与Tomcat的版本没多大关系~

img_fb98a0019b88a233d917dbf29ba95b60.png

image.png

下载之后我们先来配置好环境变量:

img_2301322a0d2d6759d7a07479971c6b4f.png

image.png

img_7e5dbb65d2a205bf88f7a4c7c98fd650.png

image.png

在我们的系统变量中增加上面六个对应变量值,对应变量的对应值,是根据自己Tomocat所在的目录决定的,配置的时候自己注意下~

2、更改Tomcat的配置文件

1、tomcat1的修改

首先,我们弄了两个Tomcat,一个tomcat1、一个tomcat2,我们以tomcat1为默认tomcat,然后在tomcat2的基础上更改。
tomcat1上我们只增加一个UTF-8的配置,我们打开tomcat1 conf目录下面的server.xml文件,添加如图所示的:URIEncoding="UTF-8" 配置,防止乱码

img_069a861edd5d9865f08e375f2cfa9fcc.png

image.png

1、tomcat2的修改

首先,
1、tomcat2要修改的第一点是和上面 tomcat1一样,增加URIEncoding="UTF-8" 配置,防止乱码。
2、更改tomcat2server.xml配置文件里面的相关端口,如下图所示操作即可。

img_c1e3319b79a6f46381d8740680a5c6bc.png

image.png

img_f8e19d1b6c30840be62636b8a3c6d066.png

image.png

img_3baabb7afeb8a84b7c079821b381ecd9.png

image.png

3、修改
tomcat2 /
bin目录下面的相关文件:

img_1d26f9ab8942428a1bd7b5b6f6c14674.png

image.png

修改上图所示的
catalina.bat
startup.bat这两个配置文件

使用文本编辑器:
Sublime Text或者
Notepad++软件打开上面两个
.bat文件:

需要更改两个地方:

①:我们需要将这两个
.bat文件里面的
CATALINA_HOME全部替换成:
CATALINA_2_HOME

②:
CATALINA_BASE全部替换成:
CATALINA_2_BASE

至此,我们的Tomcat相关的配置就差不多修改完了,为了增加两个Tomcat的区别。

我们把
tomcat2 /
webapps/
ROOT目录下面的
tomcat.png换个图标。

img_3c235fcd38c397ad90dd198b5046a433.png

image.png

好,接下来我们就来运行下试试吧~

我们进对应tomcat下面的
bin目录,使用
CMD运行
startup.bat,如图所示:我们看到下面红色框框中的对比,这就是我们为什么更改上面相关配置文件的原因了,因为不改的话两个同时启动就会有冲突

img_3c1a5cb41ebe37ef83353aa48dd1a2d7.png

image.png

既然tomcat都跑起来了我们就在浏览器里面访问看看吧~

img_4f61d3c3107a91cc8277806824177bcf.png

image.png

可以看到,我们的两个Tomcat都正常跑起来啦~

2、Nginx实现负载均衡

1、修改本地host

host文件最下面添加127.0.0.1 www.test123.com,然后保存(注意www前面还有空格的)

img_b7f9eb0239646dce4b3360667f54349d.png

image.png

2、修改Nginx相关配置:

1、打开Nginx conf/nginx.conf文件:下对应行添加入下图所指代码

    include vhost/*.conf;
img_7d11f6491746d5eaad5202a1e45e25a1.png

image.png

2、在Nginx根目录新建vhost文件夹:

img_7c721aa1b799e0c9c81fa596ebdb8d51.png

image.png

3、在
vhost问价夹下新建:
www.imooc.com.conf文件,给这个配置文件添加下面的代码:

upstream www.test123.com{
    server 127.0.0.1:8080;
    server 127.0.0.1:9080;
}
server {
    listen 80;
    autoindex on;
    server_name www.test123.com;
    access_log c:/access.log combined;
    index index.html index.htm index.jsp index.php;
    #error_page 404 /404.html;
    if ( $query_string ~* ".*[\;'\<\>].*" ){
        return 404;
    }
    location / {
        proxy_pass http://www.test123.com;
        add_header Access-Control-Allow-Origin *;
    }
}

好,至此我们的相关配置就差不多配置完啦~
我们下面启动Nginx看看:
在Nginx目录打开cmd

img_d0ca29ee570d3a05f9531db289627a7a.png

image.png

然后执行:start nginx

接下来我们访问在浏览器里面访问试试:

img_4a00efc8d207e8f15bc090171e8ce38d.png

image.png

我们可以看到,访问同一个网址进入到不同的tomcat里面啦~
当然我们还可以设置访问不同tomcat的权重:

在上面的配置文件中配置即可,当然,我们配置完之后记得在Nginx里面执行Nginx -s reload哦~ 以此来刷新我们刚添加的配置。
img_7c94f88e58d95538ad7e8d6b2877140f.png

image.png

权重越大,访问对应的几率也就越大~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101343.html原文链接:https://javaforall.net

(0)
上一篇 2021年6月15日 下午4:00
下一篇 2021年6月15日 下午5:00


相关推荐

  • 2025最新指南:Cursor如何一键分析整个项目代码库

    2025最新指南:Cursor如何一键分析整个项目代码库

    2026年3月16日
    2
  • PHPExcel读取多工作表

    PHPExcel读取多工作表分享一个大神的人工智能教程 零基础 通俗易懂 风趣幽默 还带黄段子 希望你也加入到人工智能的队伍中来 点击查看教程 最近我们公司 crm 模块需要优化一下客户导入功能 之前的要求是 只需要从单个工作表中获取数据 现在的要求是 需要在多个工作表中获取对应数据 并导入数据库 幸亏 PHPExcel 已经给我们提供了获取多个 sheet 工作表的方法 下面直接上代码 这

    2026年3月19日
    2
  • Matlab&nbsp;fmincon函数用法

    Matlab&nbsp;fmincon函数用法原文地址:fmincon函数用法”>Matlab fmincon函数用法作者:长笛人倚楼Gloria这个函数在之前优化工具箱一文中已经介绍过,由于其应用广泛,所以这里通过实例单独整理一下其用法。一、基本介绍求解问题的标准型为minF(X)s.tAXAeqX=beqG(x)Ceq(X)=0VLB 其中X为n维变元向量,G(x)与Ceq(X)均为非线性函数组成的

    2022年6月22日
    58
  • 最新idea激活码永久【2021免费激活】

    (最新idea激活码永久)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    332
  • 父组件向子组件传值步骤

    父组件向子组件传值步骤父组件向子组件传值步骤:在这里先定义一下,相对本案例来说:App.vue是父组件,Second-module.vue是子组件。一、首先,值肯定是定义在父组件中的,供所有子组件共享。所以要在父组件的data中定义值:二、其次,父组件要和子组件有契合点:就是在父组件中调用、注册、引用子组件:调用:注册:引用:三、接下来,就可以在父组件和子组件链接的地方(即引用子组件的标签上),把父组件的值绑定给子组件:这里我绑定了两个值,一个是数组,一个是字符串。2018-03-3010:15:

    2022年6月1日
    91
  • OpenClaw 从安装到入门的完全指南(2026-02-04)

    OpenClaw 从安装到入门的完全指南(2026-02-04)

    2026年3月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号