nginx根據(jù)二級目錄轉(zhuǎn)發(fā)服務(wù)以及帶/和不帶/的區(qū)別說明
nginx根據(jù)二級目錄轉(zhuǎn)發(fā)服務(wù)及帶/和不帶/區(qū)別
在nginx中配置proxy_pass代理轉(zhuǎn)發(fā)時,如果在proxy_pass后面的url加/,表示絕對根路徑;
如果沒有/,表示相對路徑,把匹配的路徑部分也給代理走。
具體實例如下:
1.配置文件location帶/且proxy_pass帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service/ { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即如果訪問test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù)http://192.168.1.51:8080/xxx.html
2.配置文件location帶/且proxy_pass不帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service/ { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
即訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080/service/xxx.html
3.配置文件location帶/且proxy_pass帶二級目錄和/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service/ { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080/api/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即訪問訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080/api/xxx.html
4.配置文件location帶/且proxy_pass帶二級目錄不帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service/ { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080/api; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即訪問訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080/apixxx.html
5.location不帶/且proxy_pass帶二級目錄不帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080/api; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即訪問訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080/api/xxx.html
6.location不帶/且proxy_pass帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即訪問訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080//xxx.html
7.location不帶/且proxy_pass不帶/
server { listen 80; server_name test.htjs.net; #通過訪問service二級目錄來訪問后臺 location /service { # http://192.168.1.51:8080后面的斜杠是一個關(guān)鍵,沒有斜杠的話就會傳遞service到后端節(jié)點 proxy_pass http://192.168.1.51:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
即訪問訪問http://test.htjs.net/service/xxx.html
實際訪問的是后端服務(wù) http://192.168.1.51:8080/service/xxx.html
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
nginx出現(xiàn)500 Internal Server Error錯誤的解決方法
這篇文章主要介紹了nginx出現(xiàn)500 Internal Server Error錯誤的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-09-09PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯誤的解決方法
這篇文章主要介紹了PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯誤的解決方法,涉及nginx平臺的相關(guān)配置技巧,需要的朋友可以參考下2016-05-05