使用Nginx反向代理實現(xiàn)多端口跳轉(zhuǎn)的實戰(zhàn)分享
前言
在現(xiàn)代 Web 開發(fā)中,Nginx作為一款高性能的開源反向代理服務(wù)器,提供了強大的功能來管理網(wǎng)絡(luò)流量和路由。本文將介紹如何利用 Nginx 的反向代理功能,將不同路徑的請求轉(zhuǎn)發(fā)到不同端口的 Tomcat 服務(wù)上,以實現(xiàn)多端口跳轉(zhuǎn)的效果。
1 實現(xiàn)的效果
使用 Nginx 的強大反向代理功能,我們能夠根據(jù)訪問路徑輕松地將請求分發(fā)到不同端口的服務(wù)上。設(shè)置 Nginx 監(jiān)聽在端口號 9001 上。
當(dāng)訪問 http://192.168.17.129:9001/edu/ 時,請求將直接轉(zhuǎn)發(fā)到本地地址 127.0.0.1 的 8080 端口上;
而當(dāng)訪問 http://192.168.17.129:9001/vod/ 時,則會直接跳轉(zhuǎn)到本地地址 127.0.0.1 的 8081 端口上。
這種配置方式讓我們能夠?qū)崿F(xiàn)基于路徑的定向請求轉(zhuǎn)發(fā),為服務(wù)架構(gòu)的靈活性和性能優(yōu)化提供了一種簡便而有效的方式。
2 準(zhǔn)備兩個tomcat服務(wù)
準(zhǔn)備兩個 tomcat 服務(wù),一個 8080 端口,一個 8081 端口。
2.1 啟動8080端口的tomcat服務(wù)
在配置兩個 Tomcat 服務(wù)時,首先啟動了一個監(jiān)聽在 8080 端口上的 Tomcat 服務(wù)。這一步簡單直接,僅需啟動 Tomcat 即可。在確保啟動成功后,創(chuàng)建了一個名為 “edu” 的目錄,并在其中添加了一個名為 “a.html” 的測試文件,文件內(nèi)容體現(xiàn)了連接到 8080 端口的字樣,以確認該端口的服務(wù)正常運行。
2.2 啟動8081端口的tomcat服務(wù)
隨后,為了啟動第二個 Tomcat 服務(wù),對其配置文件進行了修改。通過修改 server.xml 文件中的端口配置,將原本的 8005、8080、8009 分別更改為 8015、8081、8019,確保端口號唯一性并避免沖突。啟動 Tomcat 后,確認在 8081 端口上成功啟動了第二個服務(wù),并在其 webapps 目錄下創(chuàng)建了名為 “vod” 的文件夾,并添加了名為 “a.html” 的測試文件。文件內(nèi)容反映了連接到 8081 端口的字樣,用以驗證該端口服務(wù)的正常運行。
這樣的設(shè)置允許我們在不同端口上分別啟動并驗證了兩個獨立的 Tomcat 服務(wù)。通過這種配置,我們?yōu)榻酉聛淼?Nginx 反向代理設(shè)置奠定了基礎(chǔ),以便根據(jù)路徑來將請求定向到不同的 Tomcat 服務(wù)上。
3 Nginx 配置
在 Nginx 的配置文件 nginx.conf 中,我們新增了一個 server 塊來設(shè)置反向代理規(guī)則。以下是配置內(nèi)容的解釋和說明。
3.1 配置內(nèi)容
server { listen 9001; # 監(jiān)聽端口 9001 server_name 192.168.17.129; # 服務(wù)器 IP location /edu/ { proxy_pass http://127.0.0.1:8080; # 將 /edu/ 路徑映射到 8080 端口的 Tomcat } location /vod/ { proxy_pass http://127.0.0.1:8081; # 將 /vod/ 路徑映射到 8081 端口的 Tomcat } }
3.2 配置說明
listen: 指定 Nginx 監(jiān)聽的端口號為 9001,即這個配置生效于訪問該端口的請求。
server_name: 指定服務(wù)器的名稱或 IP 地址,該項設(shè)置為 192.168.17.129。
location: 定義了不同路徑的匹配規(guī)則。
location ~ /edu/: 使用正則表達式匹配以 /edu/ 開頭的路徑。~ 表示開啟正則匹配。
location ~ /vod/: 同樣使用正則表達式匹配以 /vod/ 開頭的路徑。
/edu/
: 匹配以/edu/
開頭的路徑,將請求轉(zhuǎn)發(fā)至http://127.0.0.1:8080
。/vod/
: 匹配以/vod/
開頭的路徑,將請求轉(zhuǎn)發(fā)至http://127.0.0.1:8081
。
3.3 location符號的含義和作用
~: 在 location 指令中表示開啟正則表達式匹配。對應(yīng)的路徑會被視為正則表達式,以實現(xiàn)更靈活的路徑匹配。
~*: 類似于 ~,但它表示執(zhí)行大小寫不敏感的正則匹配。
=: 精確匹配指定的路徑。例如,location = /path 表示只匹配精確路徑 /path。
^~: 表示在正則匹配前綴的情況下,如果路徑與 ^~ 后面的字符串匹配,則不再進行正則匹配,而是直接使用這個規(guī)則。通常用于避免正則匹配對其他規(guī)則產(chǎn)生影響。
這些符號能夠幫助在 Nginx 配置文件中更精細地定義不同路徑的匹配規(guī)則,以實現(xiàn)靈活的請求轉(zhuǎn)發(fā)和路由功能。
4 開放防火墻端口
確保防火墻已開放對外訪問的端口號 9001、8080 和 8081:
firewall-cmd --zone=public --add-port=9001/tcp --permanent firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=8081/tcp --permanent firewall-cmd --reload
這些命令的執(zhí)行確保了系統(tǒng)防火墻對外部網(wǎng)絡(luò)的訪問限制已經(jīng)放開,允許外部網(wǎng)絡(luò)通過 TCP 協(xié)議訪問指定的 9001、8080 和 8081 三個端口。這對于 Nginx 服務(wù)監(jiān)聽在這些端口上,并進行反向代理轉(zhuǎn)發(fā)請求是必要的設(shè)置。
5 測試與驗證
啟動 Nginx,并訪問以下地址進行測試。
- 訪問
http://192.168.17.129:9001/edu/
,將跳轉(zhuǎn)到 8080 端口的 Tomcat 服務(wù)。
- 訪問
http://192.168.17.129:9001/vod/
,將跳轉(zhuǎn)到 8081 端口的 Tomcat 服務(wù)。
結(jié)語
通過本文的介紹和配置,你已經(jīng)學(xué)會如何利用 Nginx 的反向代理功能,根據(jù)不同路徑將請求轉(zhuǎn)發(fā)至不同的 Tomcat 服務(wù)。這種方式可以實現(xiàn)更靈活的流量管理和負載均衡,為 Web 應(yīng)用的部署和擴展提供了便利。
以上就是使用Nginx反向代理實現(xiàn)多端口跳轉(zhuǎn)的實戰(zhàn)分享的詳細內(nèi)容,更多關(guān)于Nginx反向代理多端口跳轉(zhuǎn)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nginx性能優(yōu)化之Gzip壓縮設(shè)置詳解(最大程度提高頁面打開速度)
這篇文章主要介紹了Nginx性能優(yōu)化之Gzip壓縮設(shè)置詳解(最大程度提高頁面打開速度),需要的朋友可以參考下2022-01-01國內(nèi)一些常用PHP的CMS的Nginx服務(wù)器的偽靜態(tài)規(guī)則整理
當(dāng)我們從apache服務(wù)器轉(zhuǎn)向Nginx服務(wù)器的時候,它們的偽靜態(tài)規(guī)則就不一樣了,所以你熟悉Nginx服務(wù)器的偽靜態(tài)規(guī)則,自己寫當(dāng)然也好2011-03-03nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問的實現(xiàn)示例
Nginx不僅僅只是一款反向代理和負載均衡服務(wù)器,本文主要介紹了nginx中封禁ip和允許內(nèi)網(wǎng)ip訪問的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03Nginx轉(zhuǎn)發(fā)需求querystring轉(zhuǎn)寫示例解析
這篇文章主要為大家介紹了Nginx轉(zhuǎn)發(fā)需求querystring轉(zhuǎn)寫示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08Linux下Nginx負載均衡多個tomcat配置的方法步驟
這篇文章主要介紹了Linux下Nginx負載均衡多個tomcat配置的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04