實現效果:使用 nginx 反向代理,根據訪問的路徑跳轉到不同端口的服務中。
設置nginx 監聽端口為 9001,訪問 http://192.168.17.129:9001/vod/ 直接跳轉到 127.0.0.1:8080
訪問 http:// 192.168.17.129:9001/edu/ 直接跳轉到 127.0.0.1:8081
准備兩個tomcat服務器
(1)准備兩個 tomcat 服務器,一個 8080 端口,一個 8081 端口
(2)在tomcat8080的webapps里面創建文件夾vod和測試頁面a.html(里面寫的8080)
(3)在tomcat8081的webapps里面創建文件夾edu和測試頁面a.html(里面寫的8081)
(4) 測試訪問兩個tomcat,
http://192.168.1.107:8080/vod/a.html
http://192.168.1.107:8081/edu/a.html
驗證成功,注意這里只是測試兩個tomcat的配置正確,並沒有走nginx的反向代理流程!
nginx 配置
(1)找到 nginx 配置文件,進行反向代理配置,新添加如下配置
(2)同樣開放9001、8080、8081的防火牆,重啟防火牆
(3)訪問效果,反向代理成功,走了nginx的9001端口,根據路徑名,分派到不同的tomcat服務器資源上面
location 指令說明
該指令用於匹配 URL。語法如下:
1、= :用於不含正則表達式的 uri 前,要求請求字符串與 uri 嚴格匹配,如果匹配成功,就停止繼續向下搜索並立即處理該請求。
2、~:用於表示 uri 包含正則表達式,並且區分大小寫。
3、~*:用於表示 uri 包含正則表達式,並且不區分大小寫。
4、^~:用於不含正則表達式的 uri 前,要求 Nginx 服務器找到標識 uri 和請求字符串匹配度最高的 location 后,立即使用此 location 處理請求,而不再使用 location 塊中的正則 uri 和請求字符串做匹配。
注意:如果 uri 包含正則表達式,則必須要有 ~ 或者 ~* 標識。