LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

NGINX中try_files常見用法

admin
2025年8月14日 20:24 本文熱度 137

在 Nginx 中,try_files 是一個極為實用的指令,主要用于 按順序檢查文件或路徑是否存在,并返回第一個匹配到的資源或執行備用操作。它常見于 server 或 location 塊中,尤其在單頁應用(SPA)、靜態資源服務和 URL 重寫等場景下發揮關鍵作用,語法如下:

location / {    try_files file1 file2 ... fallback;}

    • file1, file2:按順序檢查的文件或路徑(相對于 root 或 alias 指定的目錄)
    • fallback:當所有文件都不存在時的備用處理方式(可以是內部重定向,比如:/index.html、命名 location,比如: @backend 或狀態碼,比如: 404/503等)

    1、檢查靜態資源是否存在,不存在返回abc目錄下默認文件index.html,查看nginx配置文件,如圖:

    上述配置理解為:如果默認情況下什么路由都不加,那么請求到abc/index.html,如果請求的時候加了一個路由,比如 “ip/about.txt”,那么首先會查找abc路徑下是否有about.txt文件,此時about.txt對應的就是"$uri",如果沒有找到about.txt,那么繼續查找abc路徑下是否有about.txt目錄,這個about.txt目錄對應的就是”$uri/” ,如果有,那么就請求about.txt目錄的內容,如果也沒有這個目錄,那么就返回默認的頁面,也就是最開始的abc/index.html
    注:找about.txt目錄下的文件默認也是index.html
    舉例:
    (1)、如果什么路徑都不加,直接使用IP訪問,默認會找到abc下的index.html,如圖:
    (2)、在abc目錄下定義about.txt目錄,在此目錄下定義index.html文件,寫入內容,通過ip/about.txt訪問,如圖:
    注:因為abc目錄下沒有about.txt文件,但是有about.txt目錄,因此跳過$uri,繼續找$uri/,找到了并返回結果
    (3)、在abc目錄下定義test.txt文件,寫入內容,此時通過ip/test.txt訪問,如圖:
    此時符合了第一個$uri,因此不會繼續向后面查找了
    (4)、直接通過ip請求未知的資源路徑,ip/gong.doc,回到了默認頁面,如圖:
    因為abc路徑下不存在gong.doc也不存在這個目錄,因此就會找到最終的/index.html
    2、檢查靜態文件是否存在,不存在則轉發到后端應用,源nginx的配置,如圖:
    上圖中的配置可以理解為如果請求的路由不匹配$uri和$uri/,那么會轉發到@backend的后端服務,這個backend名稱是自定義的,因此如果請求http://192.168.49.83/test_route的時候,但是本地沒有對應的匹配,因此會轉發到http://192.168.49.224/test_route,這個test_route會帶到后端去的
    這里還是以兩個nginx的靜態頁面舉例:
    (1)、修改49.224的nginx配置文件,添加內容如圖:
    注:在后端的nginx配置中,也要有這個test_route路由,否則會報404錯誤
    (2)、在/data/html目錄下新建test_route目錄并定義index.html文件,如圖:
    (3)、此時通過源IP來請求test_route路由,因為當前沒有匹配,就會跳轉到后端服務去,如圖:
    上述NGINX配置中有個參數,如下:
    add_header X-Tried-File $uri always; #always表示對所有響應有效
    此參數的意思是在 HTTP 響應頭 中新增一個自定義頭字段 X-Tried-File,其值為 用戶實際請求的文件路徑(即 $uri 變量),查看響應頭信息,可以看到X-Tried-File,如圖:
    3、檢查靜態文件是否存在,不存在直接返回404,如圖:
    請求gong.txt,既不存在此文件也不存在此目錄,因此直接返回404,如圖:
    4、訪問頁面,直接返回狀態碼,適合維護頁面,如圖:
    在abc目錄下定義maintenace.html(名字要與nginx配置名字一致),然后通過192.168.49.83請求,如圖:
    5、嵌套條件,修改nginx配置文件,如圖:
    上面配置理解為:如果請求/hello,那么匹配/custom/hello,如果匹配不到就繼續匹配/default/hello,如果都匹配不到就返回404
    (1)、在abc目錄下新建custom目錄并在內部創建gong.txt文件,新建default目錄并在內部新建guan.txt,通過url請求,如圖:


    閱讀原文:原文鏈接


    該文章在 2025/8/15 12:36:28 編輯過
    關鍵字查詢
    相關文章
    正在查詢...
    點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
    點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
    點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
    點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
    Copyright 2010-2025 ClickSun All Rights Reserved

    黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
    综合亚洲AV图片区 | 在线人成精品免费视频 | 亚洲欧美久久综合网站点击 | 亚洲丁香六月开心婷婷 | 在线精品三级视频在线网 | 日本一卡精品视频免费 |