通过Nginx完美解决多个项目共用一个端口

情景模拟:

问题1:

我们买了一个某某服务器,如果用这台服务器只跑一个项目,可能会有点浪费。

解决方案1:

安装多个Tomcat放置多个项目,分配不同的端口。

问题追加2:

有的项目对端口有强制要求,例如:微信订阅号等等。需要80或者443端口,现在我们需要多个项目公用一个端口[例如:80]

解决方案2:

可以把多个项目放置到同一个Tomcat中,公用一个端口。

问题追加3:

如果我们某一个项目出现问题,需要重启服务,那么Tomcat下的所有都会restart。

解决方案3:

我们今天的主题,通过Nginx实现多个项目公用一个端口。

注意:这里和F5区分[并非一码事]。

1、准备[我们是在虚拟机中模拟测试]

Nginx:192.168.102.110:7777

Tomcat1:192.168.102.110:9526/A[项目]

Tomcat2:192.168.102.110:9527/B[项目]

通过Nginx完美解决多个项目共用一个端口「80、443等等」

2、 修改配置

Tomcat1:

修改端口为:9526

vi tomcat1/conf/server.xml

通过Nginx完美解决多个项目共用一个端口「80、443等等」
通过Nginx完美解决多个项目共用一个端口「80、443等等」

项目A

通过Nginx完美解决多个项目共用一个端口「80、443等等」

Tomcat2:

vi tomcat2/conf/server.xml

修改端口为:9527

通过Nginx完美解决多个项目共用一个端口「80、443等等」
通过Nginx完美解决多个项目共用一个端口「80、443等等」

Nginx:7777

vi nginx1.8/conf/nginx.conf

通过Nginx完美解决多个项目共用一个端口「80、443等等」

修改端口及绑定ip[有域名的可以用自己的域名]

注意:上面的upstream是配的F5先注释了[不用理睬]。

通过Nginx完美解决多个项目共用一个端口「80、443等等」

Location /A[自己的tomcat1项目名]

Location /B[自己的tomcat2项目名]

通过Nginx完美解决多个项目共用一个端口「80、443等等」

3、 测试

开启Tomcat1、Tomcat2、Nginx服务

Tomcat1

通过Nginx完美解决多个项目共用一个端口「80、443等等」

Tomcat2

通过Nginx完美解决多个项目共用一个端口「80、443等等」

Nginx

通过Nginx完美解决多个项目共用一个端口「80、443等等」

浏览器访问:

分别访问A、B项目。

通过Nginx完美解决多个项目共用一个端口「80、443等等」

测试成功。

Leave a Comment