nginx try_files指令的實(shí)現(xiàn)示例
try_files 用于指定文件的查找規(guī)則,可以配置多個規(guī)則,會按順序執(zhí)行查找規(guī)則,若找到文件則中斷查找并返回文件,若找不到則返回404響應(yīng)。
配置語法
location / {
root html;
index index.html;
try_files $uri $uri/ /index.html;
}
解釋下配置:
- root指令 設(shè)置了 靜態(tài)根目錄 為 html。
- index指令 設(shè)置了 目錄的默認(rèn)文件 為 index.html。
- try_files指令 設(shè)置了 文件查找規(guī)則 為 $uri $uri/ /index.html。即3個規(guī)則,先從 $uri 查找,再從 $uri/ 目錄中查找,最后查找 /index.html。
舉個例子
針對上面的配置,當(dāng)請求 http://localhost:8080/abc 時,則 $uri 為 /abc,此時,try_files 的規(guī)則可以具體為 /abc /abc/ /index.html,/ 表示根目錄 html(由 root指令 指定)。
其具體的查找邏輯如下:
檢查 html 目錄中是否存在 abc 文件(對應(yīng)第1個規(guī)則)
- 如果存在,則返回文件
- 如果不存在,則繼續(xù)下一步
檢查 html 目錄中是否存在 abc/ 目錄(對應(yīng)第2個規(guī)則)
如果存在,則再檢查 abc/ 目錄中是否存在 index.html 文件(由 index指令 指定)
- 如果存在,則返回文件
- 如果不存在,則默認(rèn)返回403,因?yàn)槟夸洸豢稍L問;
如果不存在則繼續(xù)下一步
檢查 html 目錄中是否存在 index.html 文件(對應(yīng)第3個規(guī)則)
- 如果存在,則返回文件
- 如果不存在,則返回404
小結(jié): 可以看到,try_files指令 的查找邏輯和 root指令、index指令 有很大的關(guān)系。
高級用法:
先在本地嘗試查找文件,找不到則重定向到其他地址
location / {
try_files $uri $uri.html $uri/ @mongrel;
}
location @mongrel {
proxy_pass http://mongrel;
}到此這篇關(guān)于nginx try_files指令的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)nginx try_files內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx如何根據(jù)報文里字段轉(zhuǎn)發(fā)至不同地址
要在 Nginx 中根據(jù) POST 請求的 JSON 負(fù)載中的 id 字段的值進(jìn)行轉(zhuǎn)發(fā),你可以使用 Nginx 的 ngx_http_lua_module 模塊,這個模塊允許你在 Nginx 配置中使用 Lua 腳本,本文介紹nginx如何根據(jù)報文里字段轉(zhuǎn)發(fā)至不同地址,感興趣的朋友一起看看吧2024-12-12
WordPress與Drupal的Nginx配置rewrite重寫規(guī)則示例
這篇文章主要介紹了WordPress與Drupal的Nginx配置重寫規(guī)則示例,文中介紹的rewrite寫法簡單而突出配置重點(diǎn),需要的朋友可以參考下2016-01-01
解決nginx報錯信息 client intended to send too large body: 1331696
這篇文章主要介紹了解決nginx報錯 client intended to send too large body: 1331696 bytes的相關(guān)資料,需要的朋友可以參考下2017-02-02
Nginx配置location匹配順序詳細(xì)總結(jié)
這篇文章主要介紹了Nginx配置location匹配順序詳解,Nginx是十分輕量級的HTTP服務(wù)器,Nginx憑借其穩(wěn)定性、低資源消耗、簡單配置和豐富的功能,從十多年前名不見經(jīng)傳的Web服務(wù)器軟件,發(fā)展到如今能夠跟Apache匹敵的地位,需要的朋友可以參考下2023-08-08

