Nginx Location指令URI匹配規(guī)則詳解小結(jié)
1、介紹
location指令是http模塊當(dāng)中最核心的一項配置,根據(jù)預(yù)先定義的URL匹配規(guī)則來接收用戶發(fā)送的請求,根據(jù)匹配結(jié)果,將請求轉(zhuǎn)發(fā)到后臺服務(wù)器、非法的請求直接拒絕并返回403、404、500錯誤處理等。
2、location指令語法
location [=|~|~*|^~|@] /uri/ { … } 或 location @name { … }
3、URI匹配模式
location指令分為兩種匹配模式:
1> 普通字符串匹配:以=開頭或開頭無引導(dǎo)字符(~)的規(guī)則
2> 正則匹配:以~或~*開頭表示正則匹配,~*表示正則不區(qū)分大小寫
4、location URI匹配規(guī)則
當(dāng)nginx收到一個請求后,會截取請求的URI部份,去搜索所有l(wèi)ocation指令中定義的URI匹配模式。在server模塊中可以定義多個location指令來匹配不同的url請求,多個不同location配置的URI匹配模式,總體的匹配原則是:先匹配普通字符串模式,再匹配正則模式。只識別URI部份,例如請求為:/test/abc/user.do?name=xxxx
一個請求過來后,Nginx匹配這個請求的流程如下:
1> 先查找是否有=開頭的精確匹配,如:location = /test/abc/user.do { … }
2> 再查找普通匹配,以 最大前綴 為原則,如有以下兩個location,則會匹配后一項
* location /test/ { … }
* location /test/abc { … }
3> 匹配到一個普通格式后,搜索并未結(jié)束,而是暫存當(dāng)前匹配的結(jié)果,并繼續(xù)搜索正則匹配模式
4> 所有正則匹配模式location中找到第一個匹配項后,就以此項為最終匹配結(jié)果
所以正則匹配項匹配規(guī)則,受定義的前后順序影響,但普通匹配模式不會
5> 如果未找到正則匹配項,則以3中緩存的結(jié)果為最終匹配結(jié)果
6> 如果一個匹配都沒搜索到,則返回404
5、精確匹配與模糊匹配差別
location =/ { … } 與 location / { … } 的差別:
* 前一個是精確匹配,只響應(yīng)/請求,所有/xxx或/xxx/xxxx類的請求都不會以前綴的形式匹配到它
* 后一個是只要以 / 為前綴的請求都會被匹配到。如:/abc , /test/abc, /test/abc/aaaa
6、正則與非正則匹配
1> location ~ /test/.+.jsp$ { … } :正則匹配,支持標(biāo)準(zhǔn)的正則表達(dá)式語法。
2> location ^~ / { … } : ^~意思是關(guān)閉正則匹配,當(dāng)搜索到這個普通匹配模式后,將不再繼續(xù)搜索正則匹配模式。
... http { ... server { listen 80; server_name localhost; location / { root html; index index.html index.htm; # deny all; 拒絕請求,返回403 # allow all; 允許請求 } location /abc { deny all; } location ~ /.+\.jsp$ { proxy_pass http://location:9090; } # 匹配所有/test路徑下的jsp文件 location ~ /test/.+\.jsp$ { proxy_pass http://localhost:8080; } # 定義各類錯誤頁 error_page 404 /404.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # @類似于變量定義 # error_page 403 http://blog.csdn.net; #這種定義不允許,需求利用@定義臨時變量來實現(xiàn) error_page 403 @page403; location @page403 { proxy_pass http://blog.csdn.net; } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Nginx反向代理location和proxy_pass配置規(guī)則詳細(xì)總結(jié)
- Nginx的location的常見規(guī)則優(yōu)先級問題
- nginx 配置location匹配規(guī)則實例講解
- Nginx location匹配規(guī)則的方法示例
- nginx配置location總結(jié)location正則寫法及rewrite規(guī)則寫法
- 詳解nginx配置location總結(jié)及rewrite規(guī)則寫法
- 詳解Nginx location 匹配規(guī)則
- Nginx服務(wù)器的location指令匹配規(guī)則詳解
- nginx中的路徑匹配location規(guī)則詳解
相關(guān)文章
Nginx設(shè)置404錯誤頁面跳轉(zhuǎn)的幾種方法總結(jié)
一個網(wǎng)站項目,肯定是避免不了404頁面的,通常使用Nginx作為Web服務(wù)器時,有些相關(guān)配置方法,下面小編給大家?guī)砹薔ginx實現(xiàn)404頁面的幾種方法,感興趣的朋友一起看看吧2024-03-03Nginx服務(wù)器上搭建圖片緩存服務(wù)的基本配置解析
這篇文章主要介紹了Nginx服務(wù)器上搭建圖片緩存服務(wù)的基本配置解析,分別介紹了通過proxy_store模塊和proxy_cache模塊兩種方式的配置,需要的朋友可以參考下2016-04-04nginx配置ssl實現(xiàn)https訪問的步驟(適合新手)
這篇文章主要給大家介紹了關(guān)于nginx配置ssl實現(xiàn)https訪問的相關(guān)資料,這個教程非常適合新手小白,文中通過示例代碼將實現(xiàn)的方法一步步介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-12-12