在進行nginx反向代理配置的時候,location和proxy_pass中的斜線會造成各種困擾,有時候多一個或少一個斜線,就會造成完全不同的結果,所以特地將location和proxy_pass后有無斜線的情況進行了排列組合,進行了一次完整的測試,找出原理,以提高姿勢水平~
〇. 環境信息
兩臺nginx服務器
nginx A: 192.168.1.48
nginx B: 192.168.1.56
一. 測試方法
在nginx A中配置不同的規則,然后請求nginx A: http://192.168.1.48/foo/api
觀察nginx B收到的請求,具體操作是查看日志中的$request字段
二. 測試過程及結果
案例1
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/;}
nginx B收到的請求:/api
案例2
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/;}
nginx B收到的請求://api
案例3
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/;}
nginx B收到的請求:/foo/api
案例4
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/;}
nginx B收到的請求:/foo/api
案例5
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/bar/;}
nginx B收到的請求:/bar/api
案例6
nginx A配置:
location /foo { proxy_pass http://192.168.1.56/bar/;}
nginx B收到的請求:/bar//api
案例7
nginx A配置:
location /foo/ { proxy_pass http://192.168.1.56/bar;}
nginx B收到的請求:/barapi
案例8
nginx A配置:
location /foo { proxy_pass http://192.168.1.56/bar;}
nginx B收到的請求:/bar/api
看到這里是不是都暈了呢,其實是有規律的
現在把這些案例按表格排列起來,結果表示nginx B收到的請求
表一