日存档: 9月 5, 2022

关于nginx proxy_pass

proxy_pass的目标地址,如果不带path,表示只代理域名,url和参数部分不会变(把请求的path拼接到proxy_pass目标域名之后作为代理的URL)

如果在目标地址后带path,则表示把请求url的path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址

例如:

location /iam/fakepath

  1. proxy_pass http://192.168.1.2:8080/gw/test
  2. proxy_pass http://192.168.1.2:8080

当url为http://xxx.xxx/iam/fakepath/a/b/c时,1访问的upstream url为http://192.168.1.2:8080/gw/test/a/b/c,2访问的upstream url为http://192.168.1.2:8080/iam/fakepath/a/b/c

坑在这里:当proxy_pass后面只带“/”时很容易看错,导致访问地址错误;