• tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)


    tomcat服务搭建(多实例部署和Nginx+Tomcat负载均衡、动静分离)

    一、tomcat多实例部署

    Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,互不影响。多实例与虚拟主机不同,虚拟主机的本质是在一个服务下有多个相对独立的目录,但是多实例却存在了多个服务。

    1、关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
    • 1
    • 2
    • 3

    2、安装jdk和tomcat

    image-20220803003357063

    image-20220803005242857

    3、创建两个实例tomcat1和tomcat2

    mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
    cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 
    
    • 1
    • 2

    image-20220803171335387

    4、配置Tomcat环境变量

    vim /etc/profile.d/tomcat.sh
    #tomcat1
    export CATALINA_HOME1=/usr/local/tomcat/tomcat1
    export CATALINA_BASE1=/usr/local/tomcat/tomcat1
    export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
      
    #tomcat2
    export CATALINA_HOME2=/usr/local/tomcat/tomcat2
    export CATALINA_BASE2=/usr/local/tomcat/tomcat2
    export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
      
      
    source /etc/profile.d/tomcat.sh
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220803171415828

    image-20220803171130760

    5、修改tomcat2的server.xml文件的监听端口号

    cp /usr/local/tomcat/tomcat2/conf/server.xml /usr/local/tomcat/tomc
    at2/conf/server.xml.bak  #备份
    
    vim /usr/local/tomcat/tomcat2/conf/server.xml
    <Server port="8006" shutdown="SHUTDOWN">      #22行,修改Server prot,默认为8005 -> 修改为8006
    <Connector port="8081" protocol="HTTP/1.1"       #69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />  #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    image-20220803171745706image-20220803171809609image-20220803171823955

    6、修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量

    vim /usr/local/tomcat/tomcat1/bin/startup.sh
    # -----------------------------------------------------------------------------
    # Start Script for the CATALINA Server
    # -----------------------------------------------------------------------------
    ##添加以下内容
    export CATALINA_BASE=$CATALINA_BASE1
    export CATALINA_HOME=$CATALINA_HOME1
    export TOMCAT_HOME=$TOMCAT_HOME1
      
      
    vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
    # -----------------------------------------------------------------------------
    # Stop script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE1
    export CATALINA_HOME=$CATALINA_HOME1
    export TOMCAT_HOME=$TOMCAT_HOME1
      
    vim /usr/local/tomcat/tomcat2/bin/startup.sh
    # -----------------------------------------------------------------------------
    # Start Script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE2
    export CATALINA_HOME=$CATALINA_HOME2
    export TOMCAT_HOME=$TOMCAT_HOME2
      
    vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
    # -----------------------------------------------------------------------------
    # Stop script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE2
    export CATALINA_HOME=$CATALINA_HOME2
    export TOMCAT_HOME=$TOMCAT_HOME2
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    image-20220803172126951

    image-20220803172138983

    image-20220803172151893

    image-20220803172207685

    4、开启Tomcat服务

    /usr/local/tomcat/tomcat1/bin/startup.sh
    /usr/local/tomcat/tomcat2/bin/startup.sh
      
    netstat -natp | grep java
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220803172250179

    image-20220804093221846

    5、测试

    使用客户端pc(192.168.10.111)测试

    http://192.168.10.10:8080/
    http://192.168.10.10:8081/
    
    • 1
    • 2

    image-20220804093621611

    二、Nginx+Tomcat负载均衡+动静分离

    Nginx实现负载均衡是通过反向代理实现:

    • Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。
    • 但是不是把所有的web请求转发,而是将静态页面请求Nginx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
    • Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器,然后通过Nginx配置权重来进行挑选Tomcat服务器去进行处理,负载均衡的一种策略。

    2.1、什么是反向代理和那正向代理又是什么?

    反向代理:

    反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

    反向代理可以理解为,代理服务器代理的是它后面的服务器群,客户端只能找代理请求服务,而不知道具体提供服务的是哪台服务器。

    正向代理:

    就是一个位于客户端和原始服务器之前的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并且指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。可以简单理解为,代理服务器代理的是客户端来访问服务器。

    2.2、Nginx动静分离

    1、Nginx动静分离原理

    服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源有Nginx提供服务,动态资源Nginx转发至后端。

    image-20220804152527817

    2、Nginx静态处理优势
    • Nginx处理静态页面的效率远高于Tomcat的处理能力
    • 若Tomcat的请求量为1000次,则Nginx的请求量为6000次
    • Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3 .6M
    • Nginx处理静态资源的能力是Tomcat处理的6倍

    2.3、部署nginx服务器部署(192.168.10.12,192.168.10.13)

    2.3.1、安装部署nginxWeb服务器
    配置nginxyum源
        
    rpm -Uvh  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    
    cat /etc/yum.repos.d/nginx.repo //查看rpm添加的yum源文件
    [root@server-test2 yum.repos.d]# cat nginx.repo 
    # nginx.repo
    
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    
    yum -y install nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    image-20220803163323361

    image-20220803163337545

    2.3.2 配置Nginx
    vim /etc/nginx/nginx.conf
    
        http{
        .......
    
        #gzip  on;
    
            upstream appserver {
                    server 192.168.10.10:8080 weight=1;
                    server 192.168.10.10:8081 weight=1;
                    server 192.168.10.14:8080 weight=1;
            }
    
        include /etc/nginx/conf.d/*.conf;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    vim /etc/nginx/conf.d/default.conf
    
    server {
        listen       80;
        server_name  www.setting.com;
    
        #access_log  /var/log/nginx/host.access.log  main;
            location ~ .*.jsp$ {
                    proxy_pass http://appserver;
                    proxy_set_header HOST $host;
    
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
                    root /var/www/html;
                    expires 10d;
            }
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    .......
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    image-20220804173557672

    image-20220804173710647

    2.3.3 添加网页并开启服务
    cd /usr/share/nginx/html //yum安装的默认html目录
    echo "this is nginx2 " > setting.html //nginx服务器1
    echo "this is nginx2 " > setting.html //ningx服务器2
        
       systemctl start nginx
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20220803163607765

    image-20220803163617767

    image-20220803163631615

    2.4、部署Tomcat服务器

    2.4.1、关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    setenforce 0
    
    • 1
    • 2
    • 3
    2.4.2、安装jdk和tomcat

    image-20220803003357063

    image-20220803005242857

    2.4.3、创建两个实例tomcat1和tomcat2
    mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1
    cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 
    
    • 1
    • 2

    image-20220803171335387

    2.4.4、配置环境变量
    vim /etc/profile.d/tomcat.sh
    #tomcat1
    export CATALINA_HOME1=/usr/local/tomcat/tomcat1
    export CATALINA_BASE1=/usr/local/tomcat/tomcat1
    export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
      
    #tomcat2
    export CATALINA_HOME2=/usr/local/tomcat/tomcat2
    export CATALINA_BASE2=/usr/local/tomcat/tomcat2
    export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
      
      
    source /etc/profile.d/tomcat.sh
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    image-20220803171415828

    image-20220803171130760

    2.4.5、修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
    cp /usr/local/tomcat/tomcat2/conf/server.xml /usr/local/tomcat/tomc
    at2/conf/server.xml.bak  #备份
    
    vim /usr/local/tomcat/tomcat2/conf/server.xml
    <Server port="8006" shutdown="SHUTDOWN">      #22行,修改Server prot,默认为8005 -> 修改为8006
    <Connector port="8081" protocol="HTTP/1.1"       #69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />  #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220803171745706image-20220803171809609image-20220803171823955

    2.4.6、修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
    vim /usr/local/tomcat/tomcat1/bin/startup.sh
    # -----------------------------------------------------------------------------
    # Start Script for the CATALINA Server
    # -----------------------------------------------------------------------------
    ##添加以下内容
    export CATALINA_BASE=$CATALINA_BASE1
    export CATALINA_HOME=$CATALINA_HOME1
    export TOMCAT_HOME=$TOMCAT_HOME1
      
      
    vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
    # -----------------------------------------------------------------------------
    # Stop script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE1
    export CATALINA_HOME=$CATALINA_HOME1
    export TOMCAT_HOME=$TOMCAT_HOME1
      
    vim /usr/local/tomcat/tomcat2/bin/startup.sh
    # -----------------------------------------------------------------------------
    # Start Script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE2
    export CATALINA_HOME=$CATALINA_HOME2
    export TOMCAT_HOME=$TOMCAT_HOME2
      
    vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
    # -----------------------------------------------------------------------------
    # Stop script for the CATALINA Server
    # -----------------------------------------------------------------------------
    export CATALINA_BASE=$CATALINA_BASE2
    export CATALINA_HOME=$CATALINA_HOME2
    export TOMCAT_HOME=$TOMCAT_HOME2
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    image-20220803172126951

    image-20220803172138983

    image-20220803172151893

    image-20220803172207685

    2.4.7、启动tomcat

    image-20220803172250179

    2.5、验证

    image-20220804173905046

  • 相关阅读:
    React 入门:组件实例三大属性之props
    pycharm连接gitlab
    javaEE--后端环境变量配置
    解析隐式类型转换操作operator double() const,带你了解隐式转换危害有多大
    F - New Year Snowmen
    Python Opencv实践 - 视频文件操作
    红队内网渗透神器--CobaltStrike安装教程
    git patch 合入patch
    有谁会易位构词c++代码啊,可以直接运行的或者需要添加完词典库就可以直接运行的
    MongoDB CRUD操作:地理位置查询
  • 原文地址:https://blog.csdn.net/weixin_46514551/article/details/126163851