Angular CLI 支持子域反向代理

Posted

技术标签:

【中文标题】Angular CLI 支持子域反向代理【英文标题】:Angular CLI support for subdomain reverse proxy 【发布时间】:2019-04-04 22:47:43 【问题描述】:

假设 id 喜欢具有以下反向代理 url 重定向(用于页面加载):

https://abc.example.develop > http://localhost:4200
https://xyz.example.develop > http://localhost:4201

在 angular (cli) 或 nx 中是否有对子域的内置反向代理支持?最近 firebase 增加了对多个子域的支持,但是考虑到 1)它们是不同的域 2)firebase apis 需要 https,如何在开发中为它们服务?

proxy.config.js 方式 (https://angular.io/guide/build#bypass-the-proxy) 和环境文件方式看起来都像是为单个应用程序设计的。我需要自己做反向代理吗?

【问题讨论】:

你能提供更多关于设置的信息吗?您想通过浏览器访问 abc.example.com 和 xyz.example.com 吗?或者您是从一个子域到另一个子域进行 XHR 调用?内置支持可以帮助您处理后者(您需要在每个需要执行此操作的应用程序中修改 proxy.config)。对于前一种情况,您需要自己设置(使用 nginx、使用容器等) 正确。它是前一种情况(网址重定向) 【参考方案1】:

您必须在 Angular 提供的功能之外执行此操作,因为它是为您的本地计算机定制的。

最简单的选择是在本地运行 nginx(或其他反向代理)(参见https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/#passing-a-request-to-a-proxied-server)

修改你的 HOSTS 文件不会转发端口,所以如果你想走那条路,你需要使用https://abc.example.develop:4200

【讨论】:

【参考方案2】:

我创建了a solution,它使用 Angular CLI 执行,并且代理在 Node.js 服务器上运行。 Nx 支持目前在proposal stage 中。

【讨论】:

以上是关于Angular CLI 支持子域反向代理的主要内容,如果未能解决你的问题,请参考以下文章

在 apache 2.2.3 上设置通配符子域(带有反向代理)

反向代理将 url 重定向到子域

vue-cli 配置服务端口反向代理

Vue-cli 如何配置服务器反向代理

Rails 4 服务器/VueJS 开发服务器和子域的 Nginx 反向代理

问题解决1:nginx反向代理丢失js、css问题