nginx配置選項try_files詳解

 

一.html

try_files是nginx中http_core核心模塊所帶的指令,主要是能替代一些rewrite的指令,提升解析效率。官網的文檔爲http://nginx.org/en/docs/http/ngx_http_core_module.html#try_filesnginx

二.spa

  1.try_files的語法規則:code

    格式1:try_files file ... uri;  格式2:try_files file ... =code;orm

    可應用的上下文:server,location段server

  2.try_files的語法解釋:(先貼出官方的解釋,樓主再解釋下)htm

Checks the existence of files in the specified order and uses the first found file for request processing; the processing is performed in the current context. The path to a file is constructed from the fileparameter according to the root and alias directives. It is possible to check directory’s existence by specifying a slash at the end of a name, e.g. 「$uri/」. If none of the files were found, an internal redirect to the uri specified in the last parameter is made. 索引

  關鍵點1:按指定的file順序查找存在的文件,並使用第一個找到的文件進行請求處理
ci

  關鍵點2:查找路徑是按照給定的root或alias爲根路徑來查找的文檔

  關鍵點3:若是給出的file都沒有匹配到,則從新請求最後一個參數給定的uri,就是新的location匹配

  關鍵點4:若是是格式2,若是最後一個參數是 = 404 ,若給出的file都沒有匹配到,則最後返回404的響應碼

 3.舉例說明:

 

location /images/ {
root /opt/html/; try_files $uri $uri/ /images/default.gif;
}
好比 請求 127.0.0.1/images/test.gif 會依次查找 1.文件/opt/html/images/test.gif 2.文件夾 /opt/html/images/test.gif/下的index文件 3. 請求127.0.0.1/images/default.gif

4.其餘注意事項
1.try-files 若是不寫上 $uri/,當直接訪問一個目錄路徑時,並不會去匹配目錄下的索引頁 即 訪問127.0.0.1/images/ 不會去訪問 127.0.0.1/images/index.html

 

三.

其餘用法:

location / {
    try_files /system/maintenance.html
              $uri $uri/index.html $uri.html
              @mongrel;
}

location @mongrel {
    proxy_pass http://mongrel;
}

 

以上中若未找到給定順序的文件,則將會交給location @mongrel處理(至關於匹配到了@mongrel來匹配)

相關文章
相關標籤/搜索