Linux中Nginx反向代理如何實現不同路徑訪問不同的頁面
Nginx反向代理實現不同路徑訪問不同的頁面
最終實現效果
使用nginx反向代理,根據訪問的路徑跳轉到不同端口的服務中
nginx監(jiān)聽端口為9001
- 訪問 http://123.56.241.139:9001/zhao/index.html 直接跳轉到127.0.0.1:8080
- 訪問 http://123.56.241.139:9001/hao/index.html 直接跳轉到127.0.0.1:8081
第一步:準備工作
1、在Linux系統(tǒng)中準備兩個tomcat服務器,一個tomcat服務器是8080端口,一個tomcat服務器是8081端口
8080端口的tomcat服務器,準備好之后直接啟動
8081端口的tomcat服務器
這里我們需要修改一下這個tomcat服務器的端口為8081
進入到tomcat的conf目錄下,找到server.xml配置文件進行端口號的修改
修改完成之后啟動這個tomcat,執(zhí)行命令:./startup.sh
2、添加Linux防火墻8080、8081、9001端口
添加防火墻命令:
- 添加8080端口:firewall-cmd --add-port=8080/tcp --permanent
- 添加8081端口:firewall-cmd --add-port=8081/tcp --permanent
- 添加9001端口:firewall-cmd --add-port=9001/tcp --permanent
重啟防火墻,使其添加的端口生效,執(zhí)行命令:firewall-cmd --reload
查看一下目前開放的端口,執(zhí)行命令:firewall-cmd --list-all
然后測試一下是否可以正常訪問兩個端口的tomcat
第二步:創(chuàng)建測試頁面并配置nginx實現頁面訪問
1、在8080端口tomcat下的webapps目錄中創(chuàng)建一個目錄 zhao,然后把靜態(tài)頁面放進去
2、在8081端口tomcat下的webapps目錄中創(chuàng)建一個目錄 hao,然后把靜態(tài)頁面放進去
訪問看一下兩個tomcat中分別加載的靜態(tài)頁面
3、具體在nginx配置文件中進行反向代理的配置
進入到/usr/local/nginx/conf目錄下,找到nginx.conf配置文件進行修改
執(zhí)行修改命令:vim nginx.conf
按Insert進入編輯模式
然后按下Esc,執(zhí)行保存并退出命令 :wq!
拓展:
location指令說明
該指令用于匹配 URL
語法如下:
location [ = | ~ | ~* | ^~] uri { }
(1)=:用于不含正則表達式的uri前,要求請求字符串與uri嚴格匹配,如果匹配成功,就停止繼續(xù)向下搜索并立即處理該請求。
(2)~:用于表示uri包含正則表達式,并且區(qū)分大小寫。
(3)~*:用于表示uri包含正則表達式,并且不區(qū)分大小寫。
(4)^~:用于不包含正則表達式的uri前,要求Nginx服務器找到標識uri和請求字符串匹配度最高的location后,立即使用此location處理請求,而不再使用location塊中的正則uri和請求字符串做匹配。
注意:如果uri包含正則表達式,則必須要有 ~ 或者 ~* 標識
修改完nginx.conf需要使修改文件生效,故需要
重啟nginx服務或者重新加載nginx
進入到nginx目錄下 /usr/local/nginx/sbin,如果nginx是開啟的,那么先執(zhí)行關閉nginx命令:./nginx -s stop 然后再執(zhí)行重啟nginx命令:./nginx
或者
進入到nginx目錄下 /usr/local/nginx/sbin,執(zhí)行重新加載nginx命令:./nginx -s reload
第三步:最終訪問測試
http://123.56.241.134:9001/hao/index.html 訪問到8081的頁面
http://123.56.241.134:9001/zhao/index.html 訪問到8080的頁面
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Kubernetes部署Springboot或Nginx的詳細教程
這篇文章主要介紹了用Kubernetes部署Springboot或Nginx的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Nginx?504?Gateway?Time-out的兩種最新解決方案
大家在訪問網站的時候通常會遇到502錯誤、404錯誤等,很少會遇到504錯誤,但是在我們去訪問大流量或者內容數據量較多的網站時,打開網頁偶爾就會出現504 gateway time-out,這篇文章主要給大家介紹了關于Nginx?504?Gateway?Time-out的兩種解決方案,需要的朋友可以參考下2022-08-08