天天看點

nginx學習筆記

server段的location指令:

文法規則:

location [=|~|~|!~|!~|^~|/] /uri/

{

configuration

}

說明:

= 是精确比對,隻有完全比對才會執行 configuration。

~ 開頭是區分大小寫比對成功才執行configuration。

~* 開頭是不區分大小寫比對成功才執行configuration。

!~ 開頭是區分大小寫不比對成功才執行configuration。

^~ 表示比對以一個字元或字元串開頭成功才執行configuration。

location配置優先級别

比對規則有如下幾種類型:

普通比對:

= URI { configuration } #精确比對或完全比對

~ / URI { configuration } #通用比對,當有多個location比對時,當所有都不比對時将比對 /

“ ”URI { configuration } #空格比對

^~ URI { configuration } #字首比對

~*$ URI { configuration } #字尾比對

正規表達式比對:

~ URI { configuration } #區分大小寫比對

~ URI { configuration } #不區分大小寫比對

!~ URI { configuration } #區分大小寫不比對

!~ URI { configuration } #不區分大小寫不比對

以上幾種比對規則的優先級:

整體上先進行普通比對,再進行正則比對,如果正則不比對,就退回到上一個普通比對。普通比對沒有順序限制,哪個location的表達式最比對最精準,就使用哪個location的configuration。

= 精确比對的優先級别最高,會最先比對,一旦比對成功,将不再比對其他location規則。

若精确比對不成功,則進行普通比對。

如果普通比對有多個比對且命中多個比對,則使用表達式最長的記錄結果(例如:^~ /a和^~ /aaa.其中^~ /aaa為最長表達式),結束後續比對。

如果普通比對沒有成功,則進行正則比對。比對順序按照書寫順序從上到下進行比對,一旦比對成功一個就結束後續比對。

如果正則比對未成功,則退回到普通比對進行比對,普通比對沒有順序限制,按照location後的表達式的長短來确定命中結果。

root,alias和try_fiels的指令:

文法:

root path

配置段:http,server,location,if

alias path

配置段:location

假如通路位址是: http://www.XXX.com/a/

例如:

location ~ /a/ {

root /var/www/

完整的URL結果是:root指令之後的路徑+location之後的URI:/a/,即 /var/www/a/

假如通路位址是: http://www.XXX.com/a/test.html

alias /var/www/

完整的URL結果是:alias指令後面的路徑+location後面表達式比對到的目錄或檔案。即:/var/www/test.html

需要注意的是使用alias時目錄後面要加/,不然會找不到。

(網上部落格摘抄)

基本文法:   try_files file1[file2 file3 ...] uri 或 try_files file1 [file2 file3 ...] = code

解釋:    file :檔案或檔案路徑(檔案夾) uri:預設檔案 code:狀态碼 連起來就是:試圖尋找檔案(或檔案夾)file1,如果找到則傳回,如果沒找到緊接着尋找file2,file3...,        若果都未找到,則傳回預設檔案uri(第二種code為傳回狀态碼)

作用配置段:server location

關于vue配置解釋:vue去除#号,除了前端作修改,伺服器端也要作相應的修改,具體為-在location 裡加上try_files $uri $uri/ /index.html

$uri:nginx 一個參數,其代表的是域名後到問号之間的這一部分,比如:www.xxxx.com/index.php?a=1&b=2,那麼$uri = index.php

舉例:http://www.xxxx.com/case/goods?type =1 & page =2; $uri 就是case/goods,這個時候系統就會去找$root/case/goods($root就是你nginx配置的root /xxx/xxx/),沒有goods檔案,繼續找case/goods這個目錄,也沒找到,這時候直接傳回index.html檔案給浏覽器,浏覽器根據url再進行處理

繼續閱讀