關(guān)于nginx?反向代理?URL替換方案
nginx 提供反向代理服務(wù),日常開(kāi)發(fā)過(guò)程中有時(shí)候我們需要使用nginx 作為代理服務(wù)根據(jù)url的不同去訪問(wèn)不同的服務(wù)器或者不同端口,如下提供兩種方案。
1.直接替換location 匹配部分
1.proxy_pass的目標(biāo)地址,默認(rèn)不帶/,表示只代理域名,url和參數(shù)部分不會(huì)變(把請(qǐng)求的path拼接到proxy_pass目標(biāo)域名之后作為代理的URL)
2.如果在目標(biāo)地址后增加/,則表示把path中l(wèi)ocation匹配成功的部分剪切掉之后再拼接到proxy_pass目標(biāo)地址
server { listen 80; server_name localhost; location /system { proxy_pass http://127.0.0.1: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; } # proxy_pass 以/結(jié)尾 location /system { proxy_pass http://127.0.0.1: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://192.168.25.132/system/sysMenu/tree
如上兩個(gè)匹配成功后,實(shí)際代理的目標(biāo)url分別是
http://127.0.0.1:8080/system/sysMenu/tree (把/system/sysMenu/tree拼接到proxy_pass 地址的127.0.0.1:8080之后)
http://127.0.0.1:8080/sysMenu/tree (把/system/sysMenu/tree去掉匹配到的location /system拼接到proxy_pass 地址的127.0.0.1:8080之后)
2.使用nginx 的rewrite 模塊
rewrite是實(shí)現(xiàn)URL重寫(xiě)的關(guān)鍵指令,根據(jù)regex(正則表達(dá)式)部分內(nèi)容,重定向到replacement,結(jié)尾是flag標(biāo)記。
rewrite <regex> <replacement> [flag]; 關(guān)鍵字 正則 替代內(nèi)容 flag標(biāo)記 關(guān)鍵字:其中關(guān)鍵字error_log不能改變 正則:perl兼容正則表達(dá)式語(yǔ)句進(jìn)行規(guī)則匹配 替代內(nèi)容:將正則匹配的內(nèi)容替換成replacement flag標(biāo)記:rewrite支持的flag標(biāo)記 flag標(biāo)記說(shuō)明: last #本條規(guī)則匹配完成后,繼續(xù)向下匹配新的location URI規(guī)則 break #本條規(guī)則匹配完成即終止,不再匹配后面的任何規(guī)則 redirect #返回302臨時(shí)重定向,瀏覽器地址會(huì)顯示跳轉(zhuǎn)后的URL地址 permanent #返回301永久重定向,瀏覽器地址欄會(huì)顯示跳轉(zhuǎn)后的URL地址
把到本服務(wù)的所有請(qǐng)求轉(zhuǎn)發(fā)到www.summer.com
rewrite ^/(.*) http://www.summer.com/$1 break;
把到本服務(wù)器的所有請(qǐng)求路徑中以/system開(kāi)頭的請(qǐng)求 替換成不帶system的,例如http://192.168.25.132/system/sysMenu/tree ,匹配后地址變成 http://127.0.0.1:8080/sysMenu/tree
rewrite ^/system/(.*) /$1 break;
說(shuō)明:
rewrite為固定關(guān)鍵字,表示開(kāi)始進(jìn)行rewrite匹配規(guī)則
regex部分是 ^/(.*) ,這是一個(gè)正則表達(dá)式,匹配完整的域名和后面的路徑地址
replacement部分是http://www.summer.com/$1 $1是取自regex部分()里的內(nèi)容。匹配成功后跳轉(zhuǎn)到的URL。
flag部分 break表示停止匹配,然后跳轉(zhuǎn)到新的 http://www.summer.com/$1 地址上。
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #/data/manager可以存放靜態(tài)頁(yè)面 root /data/manager; index index.html index.htm; } location /system { proxy_pass http://127.0.0.1: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; rewrite ^/system/(.*) /$1 break; } }
regex 常用正則表達(dá)式說(shuō)明
rewrite 企業(yè)應(yīng)用場(chǎng)景
Nginx的rewrite功能在企業(yè)里應(yīng)用非常廣泛:
u 可以調(diào)整用戶瀏覽的URL,看起來(lái)更規(guī)范,合乎開(kāi)發(fā)及產(chǎn)品人員的需求。
u 為了讓搜索引擎搜錄網(wǎng)站內(nèi)容及用戶體驗(yàn)更好,企業(yè)會(huì)將動(dòng)態(tài)URL地址偽裝成靜態(tài)地址提供服務(wù)。
u 網(wǎng)址換新域名后,讓舊的訪問(wèn)跳轉(zhuǎn)到新的域名上。例如,訪問(wèn)京東的360buy.com會(huì)跳轉(zhuǎn)到j(luò)d.com
u 根據(jù)特殊變量、目錄、客戶端的信息進(jìn)行URL調(diào)整等
到此這篇關(guān)于nginx 反向代理 URL替換方案的文章就介紹到這了,更多相關(guān)nginx 反向代理替換URL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS環(huán)境下Nginx配置SSL證書(shū)實(shí)現(xiàn)https請(qǐng)求詳解
這篇文章主要為大家介紹了Nginx實(shí)戰(zhàn)-配置SSL證書(shū)(CentOS環(huán)境),實(shí)現(xiàn)https請(qǐng)求過(guò)程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05Nginx一鍵安裝部署靜態(tài)網(wǎng)頁(yè)的過(guò)程詳解
這篇文章主要介紹了Nginx一鍵安裝部署靜態(tài)網(wǎng)頁(yè),主要介紹nginx安裝和部署,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-06-06nginx配置wss協(xié)議的實(shí)現(xiàn)
本文主要介紹了nginx配置wss協(xié)議的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03使用nginx+tomcat實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)頁(yè)面的分離
這篇文章主要介紹了使用nginx+tomcat實(shí)現(xiàn)靜態(tài)和動(dòng)態(tài)頁(yè)面的分離,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧。2017-01-01基于Nginx搭建WebDAV服務(wù)的詳細(xì)過(guò)程
在搭建 Joplin 筆記服務(wù)的時(shí)候,發(fā)現(xiàn)了可以通過(guò) WebDAV 服務(wù)來(lái)實(shí)現(xiàn)云筆記的功能,所以本篇就來(lái)介紹一下,怎么快速搭建 WebDAV 服務(wù),需要的朋友可以參考下2022-12-12nginx代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法
今天小編就為大家分享一篇關(guān)于nginx代理服務(wù)器配置雙向證書(shū)驗(yàn)證的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02nginx配置緩存關(guān)閉的實(shí)現(xiàn)
本文將介紹nginx緩存關(guān)閉,以及配置的具體步驟和示例,通過(guò)調(diào)整Nginx的配置文件,可以確保瀏覽器不會(huì)緩存網(wǎng)站的內(nèi)容,從而提高網(wǎng)站的安全性和性能2023-10-10