1. 在Linux中准備兩個web服務(以兩個tomcat服務作為web服務為例)
多個tomcat安裝及配置教程:linux服務器同時運行兩個或多個tomcat。
安裝配置成功后,分別啟動兩個tomcat,打開瀏覽器訪問測試。
本文設置了兩個訪問端口分別為8080、8081的tomcat服務,兩個服務的啟動效果如圖所示,表明兩個web服務已准備完成。
2. 安裝並配置Nginx
2.1. 安裝Nginx
linux下安裝安裝配置Nginx教程:Nginx安裝配置
安裝版本如下所示:
安裝成功后,執行/usr/local/webserver/nginx/sbin/nginx,啟動Nginx。打開瀏覽器訪問測試,測試結果如圖所示,表明nginx服務器配置正確。
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服務的默認配置已被正確修改。
3. 設置Nginx的反向代理
Nginx服務器既可以作為web服務器也可以作為反向代理服務器。在本實驗中,將Nginx作為代理服務器,訪問示意圖如圖所示。
Nginx代理配置教程:Nginx配置實例-反向代理
預期效果:打開瀏覽器,在瀏覽器中輸入127.0.0.1,訪問頁面為127.0.0.1:8080的頁面(如第1點的tomcat啟動效果圖)。實現效果如圖所示,輸入127.0.0.1,訪問127.0.0.1:8080,表明Nginx反向代理設置成功。
4. 使用Nginx代理服務器,從同一個端口訪問多個服務。
示意圖如下所示:
預期效果:打開瀏覽器,訪問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,得到訪問的具體資源信息。
4.2. 配置Nginx反向代理,Nginx監聽80端口,根據訪問路徑跳轉到不同端口的服務。
進入/etc/nginx目錄,修改nginx.conf文件,配置監聽端口號、服務名。
作者的配置如下所示,代理服務器根據請求路徑轉發到具體的服務地址。
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。
得到預期結果,證明通過設置代理服務器,可以使用一個端口訪問多個服務。
致謝
對於“如何在一個端口運行多個服務”這一問題,感謝唐師弟提供的2種技術方案。
方案1:使用代理服務器方式
方案2:使用SSLH方式
作者通過實驗驗證了使用代理服務器的方式實現在一個端口運行多個服務這一技術方案的可行性。