Better

Ethan的博客,欢迎访问交流

Nginx 路径转发规则

对于 Nginx 使用 proxy_pass 做代理服务器时,最终到达真实服务器的路径还挺有意思的,傻傻斜杆分不清,哈哈。

Location 末尾没有 /

这种情况是最简单的,相当于是完全替换,不存在拼接逻辑,比如如下配置

location /api {
    proxy_pass: localhost:8899/abc
}

这种情况访问 /api/user 等同于访问 localhost:8899/abc/user

Location 末尾有 /

这种情况就比较复杂了,我也没看出什么规律,网上资料是这么说的

proxy_pass 后面的路径只有域名同时最后有 /

location /api/ {
    proxy_pass: localhost:8899
}

这种情况访问 /api/user 等同于访问 localhost:8899/api/user

proxy_pass 后面的路径只有域名同时最后有 /

location /api/ {
    proxy_pass: localhost:8899/
}

这种情况访问 /api/user 等同于访问 localhost:8899/user

proxy_pass 后面的路径还有其他路径但是最后没有 /

location /api/ {
    proxy_pass: localhost:8899/abc
}

这种情况访问 /api/user 等同于访问 localhost:8899/abcuser

proxy_pass 后面的路径还有其他路径同时最后有 /

location /api/ {
    proxy_pass: localhost:8899/abc/
}

这种情况访问 /api/user 等同于访问 localhost:8899/abc/user



留言