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