一、 Tomcat多实例
1.1 什么是Tomcat多实例?
Tomcat 多实例是指在同一台服务器上运行多个独立的 Tomcat 实例。
每个 Tomcat 实例都具有独立的配置文件、日志文件、应用程序和端口。
通过配置不同的端口和文件目录,可以实现同时运行多个独立的 Tomcat 服务器,每个服务器都可以独立处理用户的请求。
这样可以提高服务器的并发处理能力和灵活性,同时隔离不同的应用程序和配置。
1.2 配置思路
1)修改 tomcat 主配置文件 server.xml 中的三个端口号 8080 8005 8009; 2)修改 tomcat 启动停止脚本 startup.sh shutdown.sh,添加 export CATALINA BASE CATALINA HONE TOWCAT HOME 变量都指向实例的工作目录。
1.3 配置实现
1.3.1 安装jdk
1.3.2 安装tomcat
mkdir /usr/local/tomcat #实例1 mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 #实例2 cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 #实例3 cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat3
[root@localhost tomcat]# ls tomcat1 tomcat2 tomcat3
1.3.3 配置 tomcat 环境变量
#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 #tomcat3 export CATALINA_HOME3=/usr/local/tomcat/tomcat3 export CATALINA_BASE3=/usr/local/tomcat/tomcat3 export TOMCAT_HOME3=/usr/local/tomcat/tomcat3 source /etc/profile
1.3.4 修改端口号
---------------------------------------------------------------------------------------------------------- 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器默认监听8009端口,AJP端口,即容器使用,如Apache能通过AJP协议访问Tomcat的8009端口。 ----------------------------------------------------------------------------------------------------------
#tomcat2 vim /usr/local/tomcat/tomcat2/conf/server.xml #22行,修改Server prot,默认为8005 -> 修改为8006 #69行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8081 #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
#tomcat3 vim /usr/local/tomcat/tomcat3/conf/server.xml #22行,修改Server prot,默认为8005 -> 修改为8007 #69行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8082 #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8011
1.3.5 修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
以tomcat1为例,tomcat2和tomcat3配置相同
#tomcat1 vim /usr/local/tomcat/tomcat1/bin/startup.sh export CATALINA_BASE=$CATALINA_BASE1 export CATALINA_HOME=$CATALINA_HOME1 export TOMCAT_HOME=$TOMCAT_HOME1 vim /usr/local/tomcat/tomcat1/bin/shutdown.sh export CATALINA_BASE=$CATALINA_BASE1 export CATALINA_HOME=$CATALINA_HOME1 export TOMCAT_HOME=$TOMCAT_HOME1
1.3.6 启动各 tomcat 中的 /bin/startup.sh
#都是后台启动 /usr/local/tomcat/tomcat1/bin/startup.sh /usr/local/tomcat/tomcat2/bin/startup.sh /usr/local/tomcat/tomcat3/bin/startup.sh
ss -natp | grep java
1.3.7 浏览器访问测试
http://192.168.2.100:8080 http://192.168.2.100:8081 http://192.168.2.100:8082
二、Nginx+Tomcat负载均衡、动静分离
2.1 原理部分
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端。
2.2 配置思路
使用七层代理实现动静分离+负载均衡,配置tomcat多实例,多个tomcat轮流处理动态资源(轮询算法);
访问静态资源,由nginx直接处理并响应。
使用四层代理实现nginx负载均衡,客户端到代理服务器的请求,由nginx1和nignx2轮流处理(轮询算法)。
# 代理服务器 yum install epel-release.noarch -y 安装 epel 源 yum install nginx -y 安装nginx vim /etc/nginx/nginx.con http{ upstream web { server 192.168.10.101; server 192.168.10.102; } } location /{ proxy_pass http://web; } systemctl start nginx # nginx 服务器1 yum install epel-release.noarch -y 安装 epel 源 yum install nginx -y 安装nginx vim /etc/nginx/nginx.conf location ~ \.jsp$ { proxy_pass http://192.168.10.20:8080; } location ~ \.(jpglhtml)${ root /usr/share/nginx/html; } # nginx 服务器2 安装 epel 源 yum install epel-release.noarch -y 安装nginx yum install nginx -y vim /etc/nginx/nginx.conf location ~ \.jsp$ { proxy_pass http://192.168.10.30:8080; } location ~ \.(jpg|html)$ { root /usr/share/nginx/html; } 7-4 web1 安装tomcat 设置jsp文件 cd /usr/local/tomcat/webapps/ROOT/ mv index.jsp index.jsp.bak vim index.jsp7-4 7-5 web2 安装tomcat 设置jsp文件 cd /usr/local/tomcat/webapps/ROOT/ mv index.jsp index.jsp.bak vim index.jsp