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

时间:2015-09-08 14:29:44

标签: nginx rewrite reverse-proxy

我有这个位置元素:

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

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

亲切的问候, 凯文

2 个答案:

答案 0 :(得分:0)

试试这个:

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

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

答案 1 :(得分:0)

使用

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

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

感谢pythagor: - )

修改

仅当我在浏览器(https://www.mywebsite.com/publicapp/)中的网址后面留下一个斜杠时才有效。

另一个编辑

确保网址以斜杠结尾:

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

取自:here(第一个答案)