nginx 的 location 指令用于定義處理請求的規(guī)則集,通過匹配 uri、http 方法等條件,指定請求處理方式。語法包括:精確匹配、正則表達(dá)式匹配、前綴匹配等。location 指令可以嵌套,優(yōu)先級由匹配順序決定,后續(xù)請求可能受其影響。
nginx 中 location 用法
location 指令用于定義 nginx 中用于處理請求的規(guī)則集。它用于匹配請求的某些方面,例如 URI、HTTP 方法或其他標(biāo)頭,并指定應(yīng)如何處理請求。
用法
location [= | ~ | ^~] [uri] { # 指令塊 }
登錄后復(fù)制
=:精確匹配 URI
~:正則表達(dá)式匹配 URI
^~:前綴匹配 URI
語法
location 指令可以包含以下語法:
alias:指定文件系統(tǒng)中的文件或目錄的別名
auth_basic:啟用基本身份驗證
auth_basic_user_file:指定包含用戶憑據(jù)的文件
charset:設(shè)置字符集
deny:拒絕匹配請求
error_page:指定錯誤頁面
if:基于條件執(zhí)行指令塊
include:從外部文件包含指令
limit_except:根據(jù)請求 URI 或 IP 地址排除請求限制
limit_req:限制每秒處理的請求數(shù)
location:嵌套 location 指令
proxy_pass:代理請求到后端服務(wù)器
rewrite:重寫 URI
return:顯式返回請求
示例
匹配/hello URI 的請求并返回靜態(tài)文件:
location = /hello { alias /var/www/html/hello.html; }
登錄后復(fù)制
匹配以/api/開頭的 URI 的請求并將其代理到后端服務(wù)器:
location ^~ /api/ { proxy_pass http://backend_server; }
登錄后復(fù)制
優(yōu)先級
location 指令的優(yōu)先級由匹配順序決定。第一個匹配的 location 指令將處理請求。
注意事項
location 指令可以嵌套。
可以使用正則表達(dá)式定義復(fù)雜的匹配規(guī)則。
location 指令中的指令可以影響后續(xù)請求。例如,return 指令將立即停止請求處理。