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(第一个答案)
我有这个位置元素:
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(第一个答案)