Nginx 反向代理中的路径问题

Nginx 反向代理的配置块内容通常如下:

1
2
3
location [ = | ~ | ~* | ^~ ] uri {
    proxy_pass URL;
}

proxy_pass 后面的 URL, 如果带 /, 表示绝对路径, 如果不带 /, 表示相对路径

通常 URL = host[:port][path](中括号内的内容表示可选)

https://www.example.com:8080/,

https:// 是协议, www.example.comhost, 80port, /path

  1. proxy_pass 后面的 URL 不包含 path 时, 如 https://www.example.com:8080

    target_url = URL + uri

  2. proxy_pass 后面的 URL 包含 path 时, (/也算)(如 https://www.example.com/)

    target_url = URL.replace(uri, path)


以下这篇文章写得非常通俗易懂, 并且举了很详细的例子加以说明

proxy_pass url 反向代理的坑 | Nginx 入门教程