Nginx的try_files指令詳解

作者:Gakki

try_files
  • 語法:try_files file … uri;try_files file … = code;
  • 默認(rèn)值:無
  • 作用域:server location
  • 語法解釋:
    • 官方: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 *file*parameter 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.
    • 翻譯
      • 首先:按照指定的順序檢查文件是否存在,并使用第一個找到的文件進行請求處理
      • 其次:處理是在當(dāng)前上下文中執(zhí)行的香罐。根據(jù) root 和 alias 指令從 file 參數(shù)構(gòu)造文件路徑卧波。
      • 然后:可以通過在名稱末尾指定一個斜杠來檢查目錄的存在,例如“ $uri/”庇茫。
      • 最后:如果沒有找到任何文件,則進行內(nèi)部重定向到最后一個參數(shù)中指定的 uri螃成。
    • 自己理解的:按順序檢查文件是否存在旦签,返回第一個找到的文件或文件夾(結(jié)尾加斜線表示文件夾),如果所有的文件或文件夾都找不到寸宏,會進行一個內(nèi)部重定向到最后一個參數(shù)宁炫。

注:只有最后一個參數(shù)可以引起一個內(nèi)部重定向,之前的參數(shù)只設(shè)置內(nèi)部的 URL 的指向氮凝。最后一個參數(shù)是回退 URL 且必須存在羔巢,否則會出現(xiàn)內(nèi)部 500 錯誤。命名的 location 也可以使用在最后一個參數(shù)中罩阵。

舉例說明
  • 示例一:
location / {
    root data;
    index index.html index.htm;
    try_files $uri $uri/ /index.html;
}
  • 解釋配置:

    • root:設(shè)置靜態(tài)根目錄為 data
    • index:設(shè)置目錄的默認(rèn)文件為 index.html 竿秆、index.htm
    • try_files:設(shè)置文件查找規(guī)則為 $uri $uri/ /index.html。即3個規(guī)則稿壁,先從 $uri 查找幽钢,再從 $uri/ 目錄中查找,最后查找 /index.html傅是。
  • 例子:根據(jù)上面的配置匪燕,當(dāng)請求 http://localhost:3004/api 時,$uri/api喧笔。當(dāng)前try_file 具體為:/api帽驯、/api//index.html书闸,其中 / 表示根目錄(根據(jù) root 或 alias 來指定)尼变。

  • 查找邏輯:

    • 首先:檢查 data 目錄中是否存在 api 文件,如果存在梗劫,則返回文件享甸;如果不存在截碴,則進行下一步。
    • 其次:檢查 data 目錄中是否存在 api/ 目錄蛉威,如果存在日丹,則在檢查 api/ 目錄中是否存在 index.html 或者 index.htm 文件(由 index 指定);如果存在哲虾,則返回該文件。如果不存在栅盲,則進行下一步汪诉。
    • 最后:檢查 data 目錄中是否存在 index.html 文件。如果存在该编,則返回文件;如果不存在于樟,則返回 404。
  • 示例二:

location /pngs/ {
    root /data/user/;
    index index.html index.htm;
    try_files $uri   $uri/  /pngs/file.png; 
}
  • 根據(jù)上面的配置奢米,當(dāng)請求 http://localhost:3003/pngs/rule.png 時, $uri/pngs/rule.png涉波,當(dāng)前 try_file 查找順序為苍日,首先是:/data/user/pngs/rule.png,其次是:/data/user/pngs/rule.png/ 文件下的 index 所配置的文件拦耐,即: index.html、index.htm固翰,最后是: /data/user/pngs/file.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涛癌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弃衍,更是在濱河造成了極大的恐慌,老刑警劉巖速缆,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件破停,死亡現(xiàn)場離奇詭異毅臊,居然都是意外死亡,警方通過查閱死者的電腦和手機宠蚂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門呀癣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹬竖,“玉大人沼沈,你說我怎么就攤上這事”也蓿” “怎么了列另?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵页衙,是天一觀的道長。 經(jīng)常有香客問我,道長含长,這世上最難降的妖魔是什么陪腌? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任诗鸭,我火速辦了婚禮,結(jié)果婚禮上参滴,老公的妹妹穿的比我還像新娘蝌箍。我一直安慰自己,他們只是感情好暴心,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布妓盲。 她就那樣靜靜地躺著,像睡著了一般专普。 火紅的嫁衣襯著肌膚如雪悯衬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天檀夹,我揣著相機與錄音甚亭,去河邊找鬼。 笑死击胜,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的役纹。 我是一名探鬼主播偶摔,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼促脉!你這毒婦竟也來了辰斋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤瘸味,失蹤者是張志新(化名)和其女友劉穎宫仗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旁仿,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡藕夫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毅贮。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡的妖,死狀恐怖宏榕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤平夜,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站屹篓,受9級特大地震影響技肩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酒甸,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一魄健、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烘挫,春花似錦诀艰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卤橄,卻和暖如春绿满,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窟扑。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工喇颁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚎货。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓橘霎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親殖属。 傳聞我的和親對象是個殘疾皇子姐叁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容