nginx反向代理如何替換URL
前言
nginx 提供反向代理服務(wù),日常開發(fā)過程中有時(shí)候我們需要使用nginx 作為代理服務(wù)根據(jù)url的不同去訪問不同的服務(wù)器或者不同端口,如下提供兩種方案。
一、location作用
location作用:根據(jù)用戶請(qǐng)求的URL來執(zhí)行
location配置中:
- 當(dāng)用戶請(qǐng)求“/”時(shí),將匹配configuration A
- 當(dāng)用戶請(qǐng)求“/index.html/”時(shí),將匹配configuration B
- 當(dāng)用戶請(qǐng)求“/documents/document.html/”時(shí),將匹配configuration C
- 當(dāng)用戶請(qǐng)求/images/1.gif/時(shí),將匹配configuration D
- 當(dāng)用戶請(qǐng)求/documents/1.(gif|jpg|jpeg)$時(shí),將匹配configuration E
二、直接替換location 匹配部分
1.proxy_pass的目標(biāo)地址,默認(rèn)不帶/
只代理域名,URL和參數(shù)部分不會(huì)變(把請(qǐng)求的path拼接到proxy_pass目標(biāo)域名之后作為代理的URL)
2.proxy_pass目標(biāo)地址后增加/
則表示把path中l(wèi)ocation匹配成功的部分剪切掉之后再拼接到proxy_pass目標(biāo)地址
如下圖所示:
代理地址是:192.168.6.122:5840/deep/Plato
以上兩個(gè)匹配成功后,實(shí)際代理的URL分別是
1.location /deep:
- 訪問地址:http://10.15.32.22:5840/deep/Plato
- 把/deep/Plato直接拼接到proxy_pass 的地址http://10.15.32.22:5840后面;
2.location /deep/
- 訪問地址: http://10.15.32.22:5840/Plato
- 去掉匹配到location /deep/拼接到proxy_pass 的地址http://10.15.32.22:5840后面;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用nginx+tomcat+keepalived實(shí)現(xiàn)高可用的詳細(xì)步驟
這篇文章主要介紹了nginx+tomcat+keepalived實(shí)現(xiàn)高可用,包括安裝nginx服務(wù)的步驟,詳細(xì)介紹了安裝keepalived的方法,對(duì)nginx+tomcat+keepalived高可用相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03Nginx 緩存系統(tǒng) proxy_cache工作原理解析
Nginx 的 proxy_cache 模塊允許 Nginx 作為反向代理服務(wù)器時(shí)緩存后端服務(wù)器的響應(yīng),本文給大家介紹Nginx 緩存系統(tǒng) proxy_cache的工作原理,感興趣的朋友跟隨小編一起看看吧2024-12-12Nginx設(shè)置日志打印post請(qǐng)求參數(shù)的方法
這篇文章主要介紹了Nginx設(shè)置日志打印post請(qǐng)求參數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11