nginx反向代理tomcat双机热备

最近为了迎接集团检查,客户提出了一个需求,要求web应用符合主备要求,最少2台主机部署web应用,当一台的web应用出问题后,可以自动切换到另一台的应用上,不影响系统的使用。

由于我方的系统一直是单节点运行的,没有设计主备,故此使用的是单机的tomcat部署的应用,我以前没有做过这方面的主备改造故此没有什么经验。为了快速满足客户的需求故此在另一台服务器上部署了一个新的tomcat启动后可以正常显示应用,但问题来了新的tomcat所在的IP与原tomcat所在的IP不一致,这就导致了需要敲不同的IP才能访问不同tomcat来打开页面,与客户需求不一致。

这样的话就要考虑其他的方式了,双机热备的方式是最理想的,对外提供一个仿真IP1,后面连接至少2个web应用服务器IP2和IP3,用户访问的均是IP1,后台调用IP2和IP3,无论IP2或IP3哪个服务器宕机都不会影响IP1对外提供服务。但是tomcat本身不支持这种方式,上网查了下nginx可以反向代理tomcat进行双机热备满足需求。

准备环境如下:
nginx服务器:win7系统,nginx-1.12.2,IP:192.168.142.1
web服务器1:win2012系统,tomcat-8.5.59,IP:192.168.142.135
web服务器2:win2012系统,tomcat-8.5.59,IP:192.168.142.136

到http://nginx.org/en/download.html下载nginx,没敢下载最新版怕有雷或兼容性问题,下载的是nginx-1.12.2。
在这里插入图片描述

下载之后是个ZIP的压缩包,解压缩之后是如下文件:
在这里插入图片描述

nginx.exe用于启动nginx服务,启动后在进程中有2个nginx进程
在这里插入图片描述

conf文件夹下是nginx的配置文件,常用的就是nginx.conf这个文件,接下来我们就调整这个里面的配置来反向代理实现双机热备。
在这里插入图片描述

登录web服务器1,在上面部署tomcat,启动后的页面如下,注意最上面的文件描述为“项目1”。
在这里插入图片描述

登录web服务器2,在上面部署tomcat,启动后的页面如下,注意最上面的文件描述为“项目2”。
在这里插入图片描述

编辑nginx配置文件nginx.conf,打开此文件后找到server项,将其中的默认端口号8080改成80。
在这里插入图片描述

在server项上面增加一个upstream项,这里是配置的是被代理的那两台服务器1和服务器2的信息。在upstream后面输入一个空格,然后在输入一个项目的名字,例如Flex,这个Flex项目包含2个主机,如下图。后面的weight是权重,权重数设置的越高主机被访问的优先级就越高,权重相同的情况下就随机访问。
在这里插入图片描述

在server项中增加一个proxy_pass项,在其后输入空格和http://项目名,这个项目名是刚刚在upstream后面设置的那个项目名字。
在这里插入图片描述

双击nginx.exe启动nginx服务,其动后在浏览器中输入nginx的服务地址以及应用的页面名称,打开页面后会呈现web应用的界面,由于后面是不通的tomcat主机,但对外的接口是在nginx这台上,为了区分不同的主机是否生效我反复刷新页面可以看到在IP不变的情况下“项目1”和“项目2”不断的切换,说明两台tomcat主机的服务器都生效了。

在这里插入图片描述
在这里插入图片描述

如果需要修改配置文件后重新生效可以不关闭nginx,直接修改配置文件后,打开cmd窗口进入nginx目录,在其中输入nginx -s reload等一会后即可重新载入配置。
在这里插入图片描述

至此nginx反向代理形成双机热备成功,欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值