Tomcat多实例部署和动静分离

2023年 9月 30日 66.8k 0

多实例部署

多实例:多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。

  • 前期准备:
  • 1.关闭防火墙:
      systemctl stop firewalld.service
      setenforce 0
     
    2.准备安装包
     
    3.安装jdk:
      rpm -ivh jdk-8u201-linux-x64.rpm
     
    4.部署两个tomcat:
      mv apache-tomcat-9.0.16 /usr/local/tomcat1
      cp -a /usr/local/tomcat1/ /usr/local/tomcat2
    

    2c7649c9e46447888beed72978c317c5.png

    00f1af1661d74988a6c6a48bf2d6ce3a.png
    2. 配置tomcat环境变量:

    vim /etc/profile.d/tomcat.sh
    #tomcat1
    export CATALINA_HOME1=/usr/local/tomcat1
    export CATALINA_BASE1=/usr/local/tomcat1
    export TOMCAT_HOME1=/usr/local/tomcat1
     
    #tomcat2
    export CATALINA_HOME2=/usr/local/tomcat2
    export CATALINA_BASE2=/usr/local/tomcat2
    export TOMCAT_HOME2=/usr/local/tomcat2
     
     
    source /etc/profile.d/tomcat.sh  ##刷新配置
    

    1ec4212073a548b181307fa542328a0c.png

  • 更改端口号:
    修改 tomcat2 中的 server.xml 文件,各 tomcat 实例配置不能有重复的端口号
  • 22行,修改Server prot,默认为8005 -> 修改为8006
     
    69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081
     
    116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
    
  • 更改启动、关闭脚本的环境变量:
  • tomcat1:
     
    vim /usr/local/tomcat1/bin/startup.sh
      export CATALINA_BASE=$CATALINA_BASE1
      export CATALINA_HOME=$CATALINA_HOME1
      export TOMCAT_HOME=$TOMCAT_HOME1
     
    vim /usr/local/tomcat1/bin/shutdown.sh
      export CATALINA_BASE=$CATALINA_BASE1
      export CATALINA_HOME=$CATALINA_HOME1
      export TOMCAT_HOME=$TOMCAT_HOME1
     
    tomcat2:
     
    vim /usr/local/tomcat2/bin/startup.sh
      export CATALINA_BASE=$CATALINA_BASE2
      export CATALINA_HOME=$CATALINA_HOME2
      export TOMCAT_HOME=$TOMCAT_HOME2
     
    vim /usr/local/tomcat2/bin/shutdown.sh
      export CATALINA_BASE=$CATALINA_BASE2
      export CATALINA_HOME=$CATALINA_HOME2
      export TOMCAT_HOME=$TOMCAT_HOME2
    
  • 启动tomcat:
  • 测试:
  • 9293e836752a492b93bbce3cc36cee74.png

    Tomcat多实例部署和动静分离-1

    动静分离

    实验背景:

    Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。
    Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

    地址分配:

  • 代理服务器(Nginx):
    192.168.88.100
    作为前端,处理静态请求,响应静态页面
    将动态请求转发到后端,由后端Toncat处理
    动态请求的负载均衡

  • Tomcat服务器:
    192.168.88.103:8080 192.168.88.103:8081 192.168.88.104:8080
    作为后端,处理动态请求

  • 配置tomcat:

      tomcat 8080                    #添加jsp界面
    vim  /usr/local/tomcat1/webapps/www/index.jsp
      
      
      
      JSP test1 page
      
      
      
      
                          #配置主机访问路径
    vim /usr/local/tomcat1/conf/server.xml
      
            
      
     
     
      tomcat  8081
    vim  /usr/local/tomcat2/webapps/www/index.jsp
      
      
      
      JSP test2 page
      
      
      
      
      
     
    vim /usr/local/tomcat2/conf/server.xml
      
            
      
     
    tomcat 192.168.88.104:8080   同上
     
    #配置完成后重启服务
    shutdown.sh    startup.sh
    

    178773acfa1e4ffaa76b2344268b6f0c.png

    bf2a6bab8f2f45b2b5fc74a05af52411.png

    配置nginx动静分离:

    在http块中配置服务器组:

    upstream www {
        server 192.168.88.103:8080;
        server 192.168.88.103:8081;
        server 192.168.88.104:8080;
    }
    

    配置动态静态请求的location:

    ##访问以jsp结尾的url时代理到动态服务器组 
     
     location ~ .*.jsp$ {
              proxy_pass http://www;
              proxy_set_header HOST $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 #ip透穿
            }
     
     
    ##访问静态图片就用nginx本机处理:
     
        location ~ .*.(jpg|png) {
           root /apps/nginx/html;
    }
     
     
    nginx -s reload  ##刷新配置文件
     
    etails/132823010
    

    2a362a189a0a47d086100b3acc72e5e5.png

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论