当端点位于根上下文中时,如何正确配置 nginx 代理传递?

tft*_*ftd 5 nginx reverse-proxy

我试图弄清楚当端点位于根上下文中时如何在 nginx 中配置反向代理:

http://frontend.com/mylink代理转发到http://10.0.0.2:8000/

不幸的是,我无法更改应用程序的上下文http://10.0.0.2:8000,因此我试图在 nginx 中找到解决此问题的方法。当有上下文时,以下配置通常可以正常工作,但在上述情况下不起作用:

location /mylink {
    proxy_pass     http://10.0.0.2:8000;
    proxy_redirect http://10.0.0.2:8000 /mylink;
    port_in_redirect off;
}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么想法吗?

小智 3

我想如果你把它改成:

location /mylink {
   proxy_pass     http://10.0.0.2:8000/;
   proxy_redirect http://10.0.0.2:8000 /mylink;
   port_in_redirect off;
}
Run Code Online (Sandbox Code Playgroud)

请注意/线上的proxy_pass,这会导致您的匹配部分location不会发送到服务器。

有关参考,请参阅http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

如果使用 URI 指定 proxy_pass 指令,则当请求传递到服务器时,与位置匹配的规范化请求 URI 的部分将被指令中指定的 URI 替换: