Nginx中proxy pass的斜槓問題

2021-10-04 03:30:37 字數 2137 閱讀 1566

nginx的官網將proxy_pass分為兩種型別:一種是只包含ip和埠號的(連埠之後的/也沒有,這裡要特別注意),比如1.proxy_pass http://localhost:8080,這種方式稱為不帶uri方式

2.另一種是在埠號之後有其他路徑的,包含了只有單個/的如proxy_pass http://localhost:8080/,以及其他路徑,比如proxy_pass http://localhost:8080/abc

也即:proxy_pass http://localhost:8080proxy_pass http://localhost:8080/(多了末尾的/)是不同的的處理方式,而proxy_pass http://localhost:8080/proxy_pass http://localhost:8080/abc是相同的處理方式。

location /api1/
在訪問http://localhost/api1/***時,會**到http://localhost:8080/api1/***

location /api2/
當訪問http://localhost/api2/***時,http://localhost/api2/(注意最後的/)被替換成了http://localhost:8080/,然後再加上剩下的***,於是變成了http://localhost:8080/***

又比如:

location /api5/
當訪問http://localhost/api5/***時,http://localhost/api5/被替換成了http://localhost:8080/haha,請注意這裡haha後面沒有/,然後再加上剩下的***,即http://localhost:8080/haha+***=http://localhost:8080/haha***,奇怪吧。

總結一下:

# http://localhost/api4/*** -> http://localhost:8080//***,請注意這裡的雙斜線,好好分析一下。

location /api5/

# http://localhost/api5/*** -> http://localhost:8080/haha***,請注意這裡的haha和***之間沒有斜槓,分析一下原因。

# http://localhost/api8/*** -> http://localhost:8080/haha//***,請注意這裡的雙斜槓。

Nginx中proxy pass末尾加斜槓的區別

事實上,標題這種描不太準確,準確來說 當proxy pass有uri引數時,會將使用者訪問路徑中,location匹配到的部分,替換成proxy pass的uri部分。當proxy pass沒有uri引數時,uri不變,直接使用使用者訪問路徑中的uri。那麼什麼是uri?nginx將url請求分為網...

Nginx中proxy pass的斜槓 問題

nginx的官網將proxy pass分為兩種型別 也即 proxy pass http localhost 8080和proxy pass http localhost 8080 多了末尾的 是不同的的處理方式,而proxy pass http localhost 8080 和proxy pass...

nginx 配置之 proxy pass 神器!

proxy 模組是 nginx 中最碉堡的模組之一。就是有了 proxy 模組,nginx 才能和其它 http 伺服器關聯起來,極大程度地提高了 nginx 的可用性。proxy 這個模組比較大,光是指令就有一大堆。這裡我們只是簡單地介紹一下它最核心的指令 proxy pass 當我們遇到跨域問題...