摘要:以下列配置為例語法規(guī)則開頭表示精確匹配開頭表示以某個常規(guī)字符串開頭,理解為匹配路徑即可表示區(qū)分大小寫的正則匹配表示不區(qū)分大小寫的正則匹配和分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配的正則通用匹配,任何請求都會匹配到。
以下列配置為例
server { listen 80; server_name jouypub.com; location ^~ /. { return 404; } location ^~ /api { proxy_pass http://localhost:8000; } location / { root /services/apps/front/; } }location語法規(guī)則: location [=|~|~*|^~] /uri/ { … }
= 開頭表示精確匹配
^~ 開頭表示uri以某個常規(guī)字符串開頭,理解為匹配 url路徑即可
~ 表示區(qū)分大小寫的正則匹配
~* 表示不區(qū)分大小寫的正則匹配
!~和!~* 分別為區(qū)分大小寫不匹配及不區(qū)分大小寫不匹配 的正則
/ 通用匹配,任何請求都會匹配到。
如果匹配規(guī)則以^開頭,就是匹配以指定字符串開頭的路徑,如果沒有就是匹配url中的內(nèi)容是否包含指定字符串
如果匹配規(guī)則以$結(jié)尾,就是匹配以指定字符串結(jié)尾的路徑
多個location配置的情況下匹配順序為(當有匹配成功時候,停止匹配,按當前匹配規(guī)則處理請求):
優(yōu)先匹配 =
其次匹配 ^~
按照文件中的匹配順序執(zhí)行
最后匹配 /
舉例1、必選規(guī)則
location / { root /services/apps/front/; }
2、匹配靜態(tài)資源
location ^~ /static/ { root /services/apps/front/static; } location ~* .(gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/; }
3、防盜鏈
location ~* .(gif|jpg|swf)$ { valid_referers none blocked jouypub.com files.jouypub.com; if ($invalid_referer) { rewrite ^/ http://$host/logo.png; } }
jouypub.com、files.jouypub.com是運行出現(xiàn)的白名單
4、根據(jù)文件類型設(shè)置過期時間
location ~* .(js|css|jpg|jpeg|gif|png|swf)$ { if (-f $request_filename) { expires 1h; break; } }
5、禁止訪問某個目錄
location ~* .(txt|doc)${ root /services/apps/front/doc; deny all; }location中的/結(jié)尾和非/結(jié)尾
location ^~ /api { proxy_pass http://localhost:8000; }
location ^~ /api { proxy_pass http://localhost:8000/; }
訪問路徑http://www.jouypub.com/api/a.html,
規(guī)則1會被轉(zhuǎn)發(fā)到:http://localhost:8000/api/a.html
規(guī)則2會被轉(zhuǎn)發(fā)到:http://localhost:8000/a.html
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40506.html
摘要:先驗證第二條普通之間的匹配順序按最大前綴匹配配置普通普通測試鏈接,狀態(tài)碼為,符合預(yù)期。將正則的規(guī)則改下普通普通正則測試鏈接,狀態(tài)碼,匹配到,并且因為接下來沒有符合的正則,所以最終返回為,符合預(yù)期。 本文非完全原創(chuàng), 更多的是將相關(guān)資料進行整理 Last-Modified: 2019年5月10日15:28:29 參考鏈接 linux Nginx配置篇:location的匹配規(guī)則(附測試驗...
摘要:然后檢查正則表達式,按照它們在配置文件中的顯示順序。正則表達式的搜索在第一個匹配中終止,并且使用相應(yīng)的配置。正則表達式可以包含稍后可以在其他指令中使用的捕獲。 最近學習vuejs,做前后端分離,demo做完了,最終還是要發(fā)布的,于是學習nginx,其它配置倒是還好理解,唯獨對localtion理解不了,最后請教了一些網(wǎng)友,才得以解決問題,但是不希望下次還遇到問題,所以這里把localt...
摘要:本文同步在個人博客上,歡迎關(guān)注這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用重寫及代理功能的方法。表示該規(guī)則是使用正則定義的,區(qū)分大小寫。因此牢記在上下文中使用,而在上下文中使用。 本文同步在個人博客shymean.com上,歡迎關(guān)注 這篇文章整理了在前端開發(fā)中,在開發(fā)環(huán)境下使用nginx重寫uri及代理功能的方法。 參考 nginx中文文檔 前端開發(fā)者必備的 Nginx 知識 Ngin...
摘要:改為后,顯示出文件的大概大小,單位是或者或者默認為,顯示的文件時間為時間。 這是 Nginx 學習總結(jié)的第三篇,上一篇介紹到了 Nginx 學習總結(jié)(2) —— 基本配置,這一篇會對Location 模塊 做一些總結(jié)。我們知道,Location 模塊 主要是用于針對某些特定的 URL 進行配置,可以由前綴字符串定義,也可以由正則表達式定義。 Location 匹配規(guī)則 location...
摘要:作為一名,配置是我們必會的技能項之一。只有請求的路徑與后面的字符串完全相等時,才會命中。舉例表示該規(guī)則是使用正則定義的,區(qū)分大小寫。舉例匹配優(yōu)先級最后,我們了解下的查找規(guī)則。 作為一名PHPer,配置nginx是我們必會的技能項之一。但是當用戶請求到達nginx之后,是如何匹配到對應(yīng)的配置項的呢? location語法規(guī)則 首先我們先了解下location的語法規(guī)則,location語...
摘要:首先,首先會檢查所有的前綴,從中選出最長前綴匹配也就是修飾符后面的路徑最長的的并記下。然后,如果存在正則時,按照其出現(xiàn)的順序,依次匹配,找到匹配的正則就不再繼續(xù)往下,并選擇該作為最終的結(jié)果。 場景: 在項目開發(fā)中經(jīng)常會遇到nginx配置文件中,會有很多條location配置,卻讀不懂其中的含義而煩惱 Location是什么? Location是Nginx中的塊級指令(block dir...
閱讀 2904·2021-11-15 11:39
閱讀 1893·2021-09-24 09:48
閱讀 1078·2021-09-22 15:36
閱讀 3603·2021-09-10 11:22
閱讀 3073·2021-09-07 09:59
閱讀 964·2021-09-03 10:28
閱讀 686·2021-09-02 15:15
閱讀 2754·2021-08-27 16:24