tomcat单机多应用部署,Nginx负载均衡

Posted 王大军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat单机多应用部署,Nginx负载均衡相关的知识,希望对你有一定的参考价值。

一、Windows

配置tomcat

1. 安装两个tomcat服务器以上
  
2. 配置环境变量
    CATALINA_BASE:D:\\servers\\Tomcat8
    CATALINA_HOME:D:\\servers\\Tomcat8
    TOMCAT_HOME:D:\\servers\\Tomcat8

    CATALINA_2_BASE:D:\\servers\\Tomcat8 - 2
    CATALINA_2_HOME:D:\\servers\\Tomcat8 - 2
    TOMCAT_2_HOME:D:\\servers\\Tomcat8 - 2

3. 修改配置文件,除第一个tomcat,要保证每个tomcat端口不相同
    (1)找到${tomcat}/bin目录下的catalina.bat和startup.bat文件,        
     将里面的CATALINA_HOME、CATALINA_BASE值改为     CATALINA_2_BASE和CATALINA_2_HOME。即对应每个tomcat配置的环境变量,如果有第三个,就配置成 CATALINA_3_BASE、CATALINA_3_HOME。以此类推。
  
2)找到${tomcat}/conf下的server.xml
    将里面的端口以1000递增修改。比如第一个tomcat为8080不变,第二个就是9080,第三是10080......当然端口不一样即可,不强制1000递增
    需要改动三个地方,如下:
  
   

···· 

4. 启动tomcat,进行访问。(页面时个人写的东西,请忽略,出现tomcat首页即可,只要不报错)

 

 

 配置nginx负载均衡

1. 安装Nginx:略
2. 配置${nginx}/conf/nginx.conf
    在此文件中添加:include vhost/*.conf; 添加到http标签内,server标签外。 此代码类似添加代码块,将配置写到别的配置文件中,方便管理。
   
3. 添加配置文件,编写配置。
    (1)在nginx.conf同级下创建文件夹vhost,与配置相同。
    (2)创建tomcatServer.conf文件(名称自定)
    (3)加入如下内容:
        upstream tomcat.wangjun.com{
        server 127.0.0.1:9080 weight=2;
        server 127.0.0.1:8080 weight=2;
      }

      server {
          listen 80;
          autoindex off;
          server_name tomcat.wangjun.com;
          access_log D:/Nginx/nginx-1.16.1/logs/access.log combined;
          index index.html index.htm index.jsp index.php;
          location / { 
                proxy_pass http://tomcat.wangjun.com;
              add_header Access-Control-Allow-Origin *;
          }
      }
4. 我们发现tomcatServer.conf有tomcat.wangjun.com,这个是域名,需要配置,找到C:\\Windows\\System32\\drivers\\etc中的host文件
  在里面加入:127.0.0.1 tomcat.wangjun.com一行。tomcat.wangjun.com这个名称自定义,只要与tomcatServer.conf对应上即可

  

 5.启动两个tomcat,分别访问各tomcat是否启动成功,然后访问

http://tomcat.wangjun.com 多次刷新,发现会循环访问各个tomcat服务器

注意:
  1. 轮询权重weight最好不要设置1,改为别的数字。
  2. 保证配置的tomcat.wangjun.com 域名在Nginx别的配置文件没有被使用过,否则只会访问8080端口的tomcat,不会循环随机访问其他tomcat。个人遇见过此问题。
  3. 一定配置两个tomcat,而不是两个项目放入一个tomcat。保证上面配置tomcat和nginx一步不少。

 二、linux,mac

(一)、修改/etc/profile 增加tomcat环境变量
    export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8.5-1
    export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5-1
    export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5-1

    export CATALINA_2_BASE=/usr/local/tomcat/apache-tomcat-8.5-2
    export CATALINA_2_HOME=/usr/local/tomcat/apache-tomcat-8.5-2
    export TOMCAT_2_HOME=/usr/local/tomcat/apache-tomcat-8.5-2

执行: $ source /etc/profile  #使配置生效

(二)、更改配置文件,除第一个tomcat不变,配置其他tomcat。示例第二个tomcat
    1.找到${tomcat}/bin/catalina.sh
    添加如下内容:
        export CATALINA_BASE=$CATALINA_2_BASE
        export CATALINA_HOME=$CATALINA_2_HOME
  2.找到${tomcat}/conf/server.xml

   将里面的端口以1000递增修改。比如第一个tomcat为8080不变,第二个就是9080,第三是10080......当然端口不一样即可,不强制1000递增
    需要改动三个地方,如下:

 

 

   3. 启动各个tomcat,通过各自端口号地址访问。

 

注意: 如果部署多个tomcat示例,端口号必须不能重复,必须是系统中没有使用。

 

Nginx负载均衡

一、配置域名IP
    找到/etc/hosts文件,在最后添加:127.0.0.1 www.wangjun.com 这个值自定义。
    然后验证是否生效:$ ping 配置的域名

 二、用配置的域名访问tomcat

 

 

 

三、设置Nginx配置文件

  1. 找到${nginx}/conf/nginx.conf文件

   在此文件中添加:include vhost/*.conf; 添加到http标签内,server标签外。 此代码类似添加代码块,将配置写到别的配置文件中,方便管理。

   2.在${nginx}/conf下创建文件夹vhost,与配置相同。创建tomcatServer.conf文件(名称自定)

    加入如下内容:

        upstream www.wangjun.com{
        server 127.0.0.1:9080 weight=2;
        server 127.0.0.1:8080 weight=2;
      }

      server {
          listen 80;
          autoindex off;
          server_name www.wangjun.com;
          access_log /usr/local/nginx/nginx/logs/access.log combined;
          index index.html index.htm index.jsp index.php;
          location / { 
                proxy_pass http://www.wangjun.com;
              add_header Access-Control-Allow-Origin *;
          }
      }

  在${nginx}/sbin下执行 $ ./nginx -s reload 重新加载Nginx,使其配置生效
  3.
启动两个tomcat,分别访问各tomcat是否启动成功,然后访问
    http://www.wangjun.com 多次刷新,发现会循环访问各个tomcat服务器

 

       大功告成

以上是关于tomcat单机多应用部署,Nginx负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

部署Tomcat 及 nginx+tomcat负载均衡

多实例部署和Nginx+Tomcat负载均衡动静分离

Nginx+Tomcat负载均衡动静分离

部署Nginx+Tomcat负载均衡群集

部署Nginx+Tomcat负载均衡集群

Tomcat部署+Nginx负载均衡群集