proxy_pass在nginx中将webapp发布到不同的目录下

proxy_pass in nginx to publish webapp under a different directory

我有这个位置元素:

location ~* ^/publicapp {
    proxy_pass https://myserver.domain.local;
}

服务器 myserver.domain.local 托管位于 /myapp 下的 Web 应用程序。 我想通过 https://www.mywebsite.com/publicapp 公开它。我如何告诉 nginx 将 /myapp 转换为 /publicapp? 请记住,我使用 ~* 来允许不区分大小写。因此,我不能将 URI 与 proxy_pass.

一起使用

亲切的问候, 凯文

试试这个:

location ~* /publicapp/ {
    rewrite ^/publicapp/(.*)$ /myapp/ break;
    proxy_pass https://myserver.domain.local;
}

这将重写您的路径并在 .local 服务器上使用新路径。

它可以使用

rewrite ^/publicapp/(.*) /myapp/ break;

至少它适用于我非常简单的应用程序。 现在我必须弄清楚如何进行正确的 link 翻译(抱歉使用 ISA Server/TMG 术语,不知道它在 nginx 中是否相同)。

感谢毕达哥拉斯:-)

编辑:

仅当我在浏览器中 url 后保留斜杠时才有效 (https://www.mywebsite.com/publicapp/)。

另一个编辑:

确保 URL 以斜杠结尾:

rewrite ^([^.]*[^/])$ / permanent;

摘自:here(第一个答案)