案例分析
案例概述
- 通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善Web站点架构。
- Nginx是一款非常优秀的服务器软件,他能够支持高达50000个并发连接数的相应,拥有强大的静态资源处理能力,运行稳定系统资源消耗极低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。
案例环境
拓扑图
案例实施
- Tomcat1、Tomcat2的Server配置
Tomcat1和Tomcat2的配置方法相同,其中包括: - 1.关闭selinux和firewalld防火墙
systemctl disable firewalld –now
setenforce 0 - 2.安装JDK,配置JAVA环境。
yum -y install java
- 3.安装配置Tomcat1和Tomcat2,步骤一样
tar -xzf apache-tomcat-9.0.26.tar.gz
mv apache-tomcat-9.0.26 /usr/local/tomcat
-
4.部署测试页面
(1)将准备好的Java后端源码复制到/usr/src/目录下,并解压缩
-
(2)将/usr/src/java-demo/db下的文件tables_ly_tomcat.sql推送到mysql主机
-
(3)修改文件/usr/src/java-demo/src/main/resources,将其中的IP修改为mysql主机的IP
-
(4)下载maven工具,并使用工具将/usr/src/java-demo/目录下的文件打包为war包
生成war包并跳过测试,初次运行过程会较长
等待时可以切换到mysql主机,将刚刚收到的表文件tables_ly_tomcat.sql导入数据库
-
(5)将生成的目录target下的war包移动到/usr/local/tomcat/webapps/ROOT目录下,并用zip解包,如果tomcat中配置了自解析war包则可以选择不解包
启动tomcat和mysql
此时已经可以通过ip连接后台网页并连接到数据库
连接数据库成功 -
( 6)配置nginx反向代理tomcat负载均衡
测试环境,关闭防火墙和selinux
systemctl disable firewalld --now
setenforce 0
编辑nginx主配置文件
vim /usr/local/nginx/conf/nginx.conf
在http{...}中加入以下代码,设定负载均衡的服务器列表,weight参数表示权值,权值越高被分配到的概率越大。
upstream tomcat_server {
server 192.168.137.130:8080 weight=1;
server 192.168.137.131:8080 weight=1;
在http{...} - server{...} - location / {...} 中加入一行
proxy_pass http://tomcat_server;
重启nginx
/usr/local/nginx/sbin/nginx -s restart
并修改windows上hosts文件,为nginx主机添加A记录
测试用域名登录后台网站
关闭Tomcat1服务器
清除浏览器缓存再访问后台测试负载均衡是否生效
刷新页面
至此,Nginx+Tomcat负载均衡集群已部署完成