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