Nginx中l(wèi)ocation proxy_pass加與不加/的區(qū)別說明
一、location 配置
前綴匹配
# 匹配以 /images/ 開頭的URI location /images/ { # 相應的處理配置 }
- 后綴沒有
/
時,location /abc/def
可以匹配/abc/defghi
請求,也可以匹配/abc/def/ghi
等 - 而后綴有
/
時,location /abc/def/
不能匹配/abc/defghi
請求,只能匹配/abc/def/anything
這樣的請求
精確匹配
# 精確匹配僅為 /login 的URI location = /login { # 進行相應的處理 }
正則表達式匹配
# 通過正則匹配形如 /user/123 的URI location ~ ^/user/\d+ { # 進行相應的處理 }
通配符匹配
# 匹配以 .jpg、.png 或 .gif 結尾的URI location ~* \.(jpg|png|gif)$ { # 進行相應的處理 }
使用 ~*
進行正則表達式匹配時,表示對請求的 URI 不區(qū)分大小寫進行匹配
二、proxy_pass 配置
不加后綴 “/”
location /api { # 代理僅替換 schema://ip:port proxy_pass http://backend_server; }
在這種情況下,如果原始請求的 URI 是 /api/foo
,Nginx 代理會將請求轉發(fā)到 http://backend_server/api/foo
。
Nginx 不會修改原始請求的 URI,而是將其完整地傳遞給后端服務器。
加上后綴 “/”
location /api { # 代理替換整個前綴,包括location匹配使用的前綴。即 schema://ip:port/[location pattern] proxy_pass http://backend_server/; }
在這種情況下,如果原始請求的 URI 是 /api/foo
,Nginx 代理會將請求轉發(fā)到 http://backend_server/foo
。
Nginx 會將原始請求的 URI 中location
前綴 的部分去除,并將剩余部分追加到 proxy_pass 指令中配置的后端服務器地址后面。
當location為正則表達式時,proxy_pass的末尾不能帶/
,否則會報錯如下
nginx: [emerg] “proxy_pass” cannot have URI part in location given by regular expression, or inside named location, or inside “if” statement, or inside “limit_except” block in xxx.conf
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Nginx?location和proxy_pass配置示例詳解
- Nginx中proxy_pass的斜杠的兩種方式
- Nginx的location路徑與proxy_pass匹配規(guī)則說明
- Nginx捕獲并自定義proxy_pass返回的錯誤問題
- nginx中如何配置proxy_pass
- Nginx rewrite和proxy_pass的區(qū)別及說明
- Nginx proxy_pass如何到https后端
- nginx代理參數proxy_pass的實現
- nginx反向代理proxy_pass遇到的死循環(huán)問題
- 解決nginx配置proxy_pass之后,響應變慢的問題
- Nginx使用if指令實現多個proxy_pass方式
- Nginx中proxy_pass使用小結
相關文章
keepalived結合nginx實現nginx高可用的方法
這篇文章主要介紹了keepalived結合nginx實現nginx高可用的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03Windows下使用?Nginx?搭建?HTTP文件服務器?實現文件下載功能
Nginx?是一款輕量級的?HTTP?服務器,采用事件驅動的異步非阻塞處理方式框架,這讓其具有極好的?IO?性能,時常用于服務端的反向代理和負載均衡,這篇文章主要介紹了Windows下使用?Nginx?搭建?HTTP文件服務器實現文件下載功能,需要的朋友可以參考下2023-03-03