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
location ~ /a/ {
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再進行處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章