一、多实例部署:
多实例:多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。
1.前期准备:
1.关闭防火墙:systemctl stop firewalld.servicesetenforce 02.准备安装包3.安装jdk:rpm -ivh jdk-8u201-linux-x64.rpm4.部署两个tomcat:mv apache-tomcat-9.0.16 /usr/local/tomcat1cp -a /usr/local/tomcat1/ /usr/local/tomcat2
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/tomcat2source /etc/profile.d/tomcat.sh ##刷新配置
3.更改端口号:
修改 tomcat2 中的 server.xml 文件,各 tomcat 实例配置不能有重复的端口号
22行,修改Server prot,默认为8005 -> 修改为800669行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8081116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010
4.更改启动、关闭脚本的环境变量:
tomcat1:vim /usr/local/tomcat1/bin/startup.shexport CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1vim /usr/local/tomcat1/bin/shutdown.shexport CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1tomcat2:vim /usr/local/tomcat2/bin/startup.shexport CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2vim /usr/local/tomcat2/bin/shutdown.shexport CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export 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:
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块中配置服务器组:
upstream www {server 192.168.88.103:8080;server 192.168.88.103:8081;server 192.168.88.104:8080;
}
4.2 配置动态静态请求的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 ##刷新配置文件