nginx rewrite參數(shù)解析
在nginx的配置中,是否對rewrite的配置模糊不清,還有令人迷惑的
$1、$2...
參數(shù),(其實$1、$2
參數(shù)在shell腳本中經(jīng)常用到,用來承接傳遞的參數(shù))。本篇從反向代理配置的角度幫助理解一下
1、先看一個nginx配置
rewrite ^/(user_\d)/(\d).html$ https://$host/?$1 permanent;
上面是我寫的重寫規(guī)則,先說$代表的是參數(shù),所以一定是 ()
包含的
()
: 用于匹配括號之間的內(nèi)容,通過$1
、$2
調(diào)用$1
就是user_\d
$2
就是\d
舉個例子
https://www.example.com/user_1/2.html
這里$1
就是 user_1
$2
就是2
這實際上就是正則在nginx里面的運用, 下面看一下 正則 的規(guī)則,會幫助你理解??
2、正則
2.1、replace
stringObject.replace(regexp/substr, replacement)
replacement 可以是字符串,也可以是函數(shù)。如果它是字符串,那么每個匹配都將由字符串替換。但是 replacement
中的 $
字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用于替換。
字符 | 替換文本 |
---|---|
1、1、2、...、$99 | 與 regexp 中的第 1 到第 99 個子表達式相匹配的文本。 |
$& | 與 regexp 相匹配的子串。 |
$` | 位于匹配子串左側(cè)的文本。 |
$' | 位于匹配子串右側(cè)的文本。 |
$$ | 直接量符號。 |
2.2、正則匹配重寫例子
- 參數(shù)匹配,互換位置
name = "Tom, Jerry"; name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); 'Jerry Tom'
- 參數(shù)獲取
var str = '/pgk/api/pgk-abc' var reg = /^\/pgk(.*)$/ str.replace(reg, "$1") // '/api/pgk-abc' var str = '/pgk/api/pgk-abc/n/abc' var reg = /^\/pgk\/api\/pgk-abc\/(.*)$/ str.replace(reg, "$1") // 'n/abc'
3、生產(chǎn)配置示例
下面是工作中的實際配置, 重寫系統(tǒng)簡稱 ABC
location /ABC/api/pgk-abc/ { rewrite ^/ABC/(.*)$ /$1 break; proxy_pass http://ip:port; # 這里重寫掉 ABC , $1 就是 api/pgk-abc/ # 實際請求地址是: http://ip:port/api/pgk-abc/ proxy_http_version 1.1; }
本篇完, rewrite 相關(guān)的還有 break、last、permanent、redirect參數(shù),下期繼續(xù)分享。
到此這篇關(guān)于nginx rewrite參數(shù)解析的文章就介紹到這了,更多相關(guān)nginx rewrite參數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
服務(wù)器報錯nginx?502?Bad?Gateway的原因及如何解決詳解
項目啟動時莫名其妙網(wǎng)站訪問不了,502 Bad Gateway,下面這篇文章主要給大家介紹了關(guān)于服務(wù)器報錯nginx?502?Bad?Gateway的原因及如何解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06詳解Nginx反向代理實現(xiàn)會話(session)保持的兩種方式
這篇文章主要介紹了詳解Nginx反向代理實現(xiàn)會話(session)保持的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Nginx出現(xiàn)404 Not Found nginx/1.23.4的完美解決方案
在Nginx配置過程中,404 Not Found錯誤是一個常見問題,本文將詳細(xì)解析Nginx 404 Not Found的原因及解決方案,確保您能夠輕松解決這一問題,需要的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧2024-07-07Nginx代理MySQL實現(xiàn)通過域名連接數(shù)據(jù)庫的詳細(xì)教程
我們的生產(chǎn)環(huán)境基本上都部署在云服務(wù)器上,例如應(yīng)用服務(wù)器、MySQL服務(wù)器等,如果MySQL服務(wù)器直接暴露在公網(wǎng),就會存在很大的風(fēng)險,為了保證數(shù)據(jù)安全,MySQL服務(wù)器的端口是不對外開放的,所以本文介紹了Nginx代理MySQL實現(xiàn)通過域名連接數(shù)據(jù)庫的詳細(xì)教程2024-07-07Centos7.3 安裝部署Nginx并配置https的方法步驟
這篇文章主要介紹了Centos7.3 安裝部署Nginx并配置https的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04nginx環(huán)境下配置ssl加密(單雙向認(rèn)證、部分https)
這篇文章主要介紹了nginx環(huán)境下配置ssl加密(單雙向認(rèn)證、部分https),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-11-11