1. 在Linux中准备两个web服务(以两个tomcat服务作为web服务为例)

多个tomcat安装及配置教程:linux服务器同时运行两个或多个tomcat。

安装配置成功后,分别启动两个tomcat,打开浏览器访问测试。

本文设置了两个访问端口分别为8080、8081的tomcat服务,两个服务的启动效果如图所示,表明两个web服务已准备完成。

nginx 设置多端口 nginx 一个端口多个web应用_nginx

nginx 设置多端口 nginx 一个端口多个web应用_nginx_02

2. 安装并配置Nginx

2.1. 安装Nginx

linux下安装安装配置Nginx教程:Nginx安装配置

安装版本如下所示:

nginx 设置多端口 nginx 一个端口多个web应用_tomcat_03

安装成功后,执行/usr/local/webserver/nginx/sbin/nginx,启动Nginx。打开浏览器访问测试,测试结果如图所示,表明nginx服务器配置正确。

nginx 设置多端口 nginx 一个端口多个web应用_tomcat_04

2.2. 修改Nginx的默认配置

(1) 在/usr/local/webserver/nginx/html下创建testhtml文件夹并新建indext.html测试页面。

(2) 进入nginx.conf文件,修改服务的默认访问路径为/html/testhtml。

(3) 执行/usr/local/webserver/nginx/sbin/nginx -t 检查文件修改是否存在错误。

(4) 执行/usr/local/webserver/nginx/sbin/nginx-s reload命令,重新载入配置文件。

(5) 执行/usr/local/webserver/nginx/sbin/nginx -s reopen命令,重启nginx服务。

(6) 打开浏览器访问测试,测试结果如图3所示,表明Nginx服务的默认配置已被正确修改。

nginx 设置多端口 nginx 一个端口多个web应用_nginx_05

3. 设置Nginx的反向代理

Nginx服务器既可以作为web服务器也可以作为反向代理服务器。在本实验中,将Nginx作为代理服务器,访问示意图如图所示。

nginx 设置多端口 nginx 一个端口多个web应用_Nginx_06


Nginx代理配置教程:Nginx配置实例-反向代理

预期效果:打开浏览器,在浏览器中输入127.0.0.1,访问页面为127.0.0.1:8080的页面(如第1点的tomcat启动效果图)。实现效果如图所示,输入127.0.0.1,访问127.0.0.1:8080,表明Nginx反向代理设置成功。

nginx 设置多端口 nginx 一个端口多个web应用_Nginx_07

4. 使用Nginx代理服务器,从同一个端口访问多个服务。

示意图如下所示:

nginx 设置多端口 nginx 一个端口多个web应用_nginx 设置多端口_08


预期效果:打开浏览器,访问http:// 127.0.0.1/edu/ 进入127.0.0.1:8080;访问http:// 127.0.0.1/vod/进入127.0.0.1:8081。4.1. 创建tomcat服务的资源页面。

在下载的两个tomcat服务目录的webapps目录下分别创建tomcat服务的资源页面。作者的两个tomcat文件目录为tomcat8080、tomcat8081。

在tomcat8080目录下的webapps目录下创建edu文件,在edu文件下创建8080.html作为测试页面。

在tomcat8081目录下的webapps目录下创建vod文件,在vod文件下创建8081.html作为测试页面。

进入浏览器,分别访问localhost:8080/edu/8080.html,localhost:8081/vod/8081.html,得到访问的具体资源信息。

nginx 设置多端口 nginx 一个端口多个web应用_nginx_09


nginx 设置多端口 nginx 一个端口多个web应用_nginx 设置多端口_10


4.2. 配置Nginx反向代理,Nginx监听80端口,根据访问路径跳转到不同端口的服务。

进入/etc/nginx目录,修改nginx.conf文件,配置监听端口号、服务名。

作者的配置如下所示,代理服务器根据请求路径转发到具体的服务地址。

nginx 设置多端口 nginx 一个端口多个web应用_nginx 设置多端口_11


4.3. 启动Nginx服务,进入浏览器测试代理设置是否成功。

访问http:// 127.0.0.1/edu/ 进入127.0.0.1:8080;访问http:// 127.0.0.1/vod/进入127.0.0.1:8081。

得到预期结果,证明通过设置代理服务器,可以使用一个端口访问多个服务。

nginx 设置多端口 nginx 一个端口多个web应用_tomcat_12


nginx 设置多端口 nginx 一个端口多个web应用_nginx_13

致谢

对于“如何在一个端口运行多个服务”这一问题,感谢唐师弟提供的2种技术方案。
方案1:使用代理服务器方式
方案2:使用SSLH方式
作者通过实验验证了使用代理服务器的方式实现在一个端口运行多个服务这一技术方案的可行性。