Tomcat多实例部署和动静分离

一、多实例部署:

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

1.前期准备:

bash 复制代码
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

2.配置tomcat环境变量:

bash 复制代码
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  ##刷新配置

3.更改端口号:

修改 tomcat2 中的 server.xml 文件,各 tomcat 实例配置不能有重复的端口号

bash 复制代码
22行,修改Server prot,默认为8005 -> 修改为8006

69行,修改Connector port,HTTP/1.1  默认为8080 -> 修改为8081

116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

4.更改启动、关闭脚本的环境变量:

bash 复制代码
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

5.启动tomcat:

6.测试:

二、动静分离:

1.实验背景:

Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。

Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

2.地址分配:

(1)代理服务器(Nginx):

192.168.88.100

  • 作为前端,处理静态请求,响应静态页面
  • 将动态请求转发到后端,由后端Toncat处理
  • 动态请求的负载均衡

(2)Tomcat服务器:

192.168.88.103:8080 192.168.88.103:8081 192.168.88.104:8080

作为后端,处理动态请求

3.配置tomcat:

bash 复制代码
  tomcat 8080
                               #添加jsp界面
vim  /usr/local/tomcat1/webapps/www/index.jsp
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  <html>
  <head>
  <title>JSP test1 page</title>
  </head>
  <body>
  <% out.println("动态页面 1,192.168.88.103:8080");%>
  </body>
  </html>
                               #配置主机访问路径
vim /usr/local/tomcat1/conf/server.xml
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" 
  xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat1/webapps/www" path="" reloadable="true" />
  </Host>



  tomcat  8081
vim  /usr/local/tomcat2/webapps/www/index.jsp
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  <html>
  <head>
  <title>JSP test2 page</title>
  </head>
  <body>
  <% out.println("动态页面 2,192.168.88.103:8081");%>
  </body>
  </html>

vim /usr/local/tomcat2/conf/server.xml
  <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" 
  xmlValidation="false" xmlNamespaceAware="false">
        <Context docBase="/usr/local/tomcat2/webapps/www" path="" reloadable="true" />
  </Host>

tomcat 192.168.88.104:8080   同上

#配置完成后重启服务
shutdown.sh    startup.sh

4.配置nginx动静分离:

4.1 在http块中配置服务器组:

bash 复制代码
upstream www {
    server 192.168.88.103:8080;
    server 192.168.88.103:8081;
    server 192.168.88.104:8080;
}

4.2 配置动态静态请求的location:

bash 复制代码
##访问以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  ##刷新配置文件

5.测试:

相关推荐
炫友呀1 小时前
Centos 更新/修改宝塔版本
linux·运维·centos
闻道且行之1 小时前
嵌入式|VNC实现开发板远程Debian桌面
运维·debian·嵌入式
IT成长日记2 小时前
【自动化运维神器Ansible】Playbook中的when条件判断:精细化控制任务执行
运维·自动化·ansible·playbook·when·条件判断
spencer_tseng4 小时前
Eclipse Tomcat Configuration
eclipse·tomcat
HYI5 小时前
小公司前端多分支测试太痛苦?我自己写了个轻量 CLI
nginx·vite
杭州泽沃电子科技有限公司6 小时前
告别翻山越岭!智能监拍远程守护输电线路安全
运维·人工智能·科技·安全
长臂人猿7 小时前
JVM常用工具:jstat、jmap、jstack
linux·运维·jvm
CodeDevMaster9 小时前
Gemini Balance:轻松实现Gemini API负载均衡与无缝切换的终极指南
负载均衡·api·gemini
timeweaver9 小时前
深度解析 Nginx 前端 location 配置与优先级:你真的用对了吗?
前端·nginx·前端工程化
HWL567911 小时前
“preinstall“: “npx only-allow pnpm“
运维·服务器·前端·javascript·vue.js