Tomcat多实例部署
安装Tomcat关闭防火墙
安装JDK
设置JDK环境变量
vim /etc/profile.d/java.sh
安装tomcat
cd /opt
配置tomcat环境变量
vim /etc/profile.d/tomcat.sh
修改tomcat2主配置文件
要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
修改 tomcat1 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
修改 tomcat2 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat2/bin/startup.sh
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
启动各 tomcat 中的 /bin/startup.sh
浏览器访问测试
http://172.16.10.101:8080
http://172.16.10.101:8081
多实例部署完成
Nginx+Tomcat负载均衡、动静分离
部署nginx负载均衡器
环境
Nginx 服务器:172.16.10.10:80
Tomcat服务器1:172.16.10.20:80
Tomcat服务器2:172.16.10.101:8080 172.16.10.101:8081
tar zxvf nginx-1.12.0.tar.gz -C /opt/ #解压
cd nginx-1.12.0/
make && make install 编译安装
部署两台Tomcat 应用服务器
tomcat1部署
tomcat部署过程
动静分离配置
Tomcat1 server 配置
mkdir /usr/local/tomcat/webapps/test
vim /usr/local/tomcat/webapps/test/index.jsp
vim /usr/local/tomcat/conf/server.xml
由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
Tomcat2 server 配置
mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
vim /usr/local/tomcat/tomcat1/conf/server.xml
删除前面的host配置
/usr/local/tomcat/tomcat1/bin/shutdown.sh
/usr/local/tomcat/tomcat1/bin/startup.sh
vim /usr/local/tomcat/tomcat2/webapps/test/index.jsp
vim /usr/local/tomcat/tomcat2/conf/server.xml
/usr/local/tomcat/tomcat2/bin/shutdown.sh
/usr/local/tomcat/tomcat2/bin/startup.sh
Nginx server 配置
准备静态页面和静态图片
cd /usr/local/nginx/html/
vim index.html
mkdir /usr/local/nginx/html/img
cp 1.jpg ./img
vim /usr/local/nginx/conf/nginx.conf
systemctl restart nginx.service
Nginx 负载均衡模式:
●rr 负载均衡模式:
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。
●least_conn 最少连接:
优先将客户端请求调度到当前连接最少的服务器。
●ip_hash 负载均衡模式:
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用ip_hash模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash(使用后端服务器自身通过相关机制保持session同步)。
●fair(第三方)负载均衡模式:
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
●url_hash(第三方)负载均衡模式:
基于用户请求的uri做hash。和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。