Nginx借助多个Tomcat进行反向代理

将要实现的效果:

  使用Nginx进行反向代理,根据访问的路径跳转到不同的端口服务中,Nginx监听端口为4470,访问http://192.168.31.146:4470/edu/时跳转到127.0.0.1:8889,访问http://192.168.31.146:4470/vod/时跳转到127.0.0.1:8890

  解释说明:

(1)192.168.31.146是本机ip地址,

(2)端口4470、8889、8890为自定义端口,无特殊限制,但不要与其他端口冲突。

步骤(一)

(1)准备两个Tomcat服务器,一个监听8889端口,一个监听8890端口

①在官网下载压缩包,并解压

安装好监听8889端口的Tomcat后的文件目录:

安装好监听8890端口的Tomcat后的文件目录:

 

 ②配置环境变量

在环境变量之用户变量下添加如下四个变量:

在环境变量之用户变量下的path变量里面添加如下四个变量:

 

 ③修改Tomcat配置文件里面的默认变量

  到D:Tomcat8889in下,依次打开catalina.bat、shutdown.bat、startup.bat,将默认变量CATALINA_HOMECATALINA_BASE改为CATALINA_HOME1CATALINA_BASE1

  到D:Tomcat8890in下,依次打开catalina.bat、shutdown.bat、startup.bat,将默认变量CATALINA_HOMECATALINA_BASE改为CATALINA_HOME2CATALINA_BASE2

  解释说明:

(1)shutdown.bat、startup.bat只有CATALINA_HOME变量

(2)可以借助文本编辑器的“替换”功能,高效快速修改

④修改Tomcat配置文件里面的默认监听端口

到D:Tomcat8889conf下,打开server.xml,修改后的端口如下图:

 

 到D:Tomcat8890conf下,打开server.xml,修改后的端口如下图:

 

   解释说明

(1)端口8016、8017为自定义端口,无特殊限制,但不要与其他端口冲突。

(2)因新旧Tomcat版本差异,可能还需要修改第三个端口,考虑到新版本不需再修改,故不再特地演示

(2)创建文件夹和测试页面

进入到D:Tomcat8889webapps下,创建文件夹edu,在文件夹edu下创建任意测试页面,比如a.html(完整路径:D:Tomcat8889webappsedua.html)

进入到D:Tomcat8890webapps下,创建文件夹vod,在文件夹vod下创建任意测试页面,比如a.html(完整路径:D:Tomcat8890webappsvoda.html)

步骤(二)

进入 到E: ginx-1.18.0conf下,打开nginx.conf,修改后的配置如下图:

   解释说明:

(1)在nginx.conf中35行,没有做出修改,仍然保持nginx默认监听80端口;只是在82行开始,增加nginx监听的端口

(2)正则表达式/edu/和/vod/,当路径包含edu和vod时,进行跳转

步骤(三)

启动Nginx、Tomcat,输入相关路径进行验证,如下图:

(1)

(2)

  解释说明:启动Tomcat后,Tomcat窗口会出现乱码,如下图:

 解决办法:进入到D:Tomcat8889conf下,打开logging.properties,将编码规则UTF-8改为GBK

编者寄语:如有不当,欢迎大家指正,一起进步~

 

原文地址:https://www.cnblogs.com/cjb0809/p/Nginx-Tomcat.html