通过上述现象知道,直接访问https://ip:1443/a/b,会先301重定向(nginx自动的潜在重定向行为)至https://ip:1443/a/b/,再提示403
通过上述现象知道,直接访问https://ip:1443/a/b/1.txt,可以获取文件内容;直接访问https://ip:1443/a/b/1.txt/,提示404,应该判定为目录
情形1,结尾有路径,不带/
location = /a/b/1.txt {
proxy_pass https://ip:1443/a/b; # 代理到本地的1443端口
}
通过代理访问,可以看出其实访问拼接的是https://ip:1443/a/b
情形2,结尾有路径,带/
location = /a/b/1.txt {
proxy_pass https://ip:1443/a/b/; # 代理到本地的1443端口
}
通过代理访问,可以看出其实访问拼接的是https://ip:1443/a/b/
情形3,结尾没有路径,带/
location = /a/b/1.txt {
proxy_pass https://ip:1443/; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/
情形4,结尾没有路径,不带/
location = /a/b/1.txt {
proxy_pass https://ip:1443; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/a/b/1.txt,获取到了内容
上面是location为= 精确匹配的情况,如下是location为前缀匹配的情况
情形5,结尾有路径,不带/
location /a/c/ {
proxy_pass https://ip:1443/a/b; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/a/b1.txt
情形6,结尾有路径,带/
location /a/c/ {
proxy_pass https://ip:1443/a/b/; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/a/b/1.txt
情形7,结尾无路径,带/
location /a/c/ {
proxy_pass https://ip:1443/; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/1.txt
情形8,结尾无路径,不带/
location /a/c/ {
proxy_pass https://ip:1443; # 代理到本地的1443端口
}
通过代理实际访问的是https://ip:1443/a/c/1.txt