【发布时间】:2019-09-23 07:51:32
【问题描述】:
我有一个使用 Angular 7 构建的 Web 应用程序,我需要进行 API 调用以获取我在应用程序中显示的一些数据。
API 端点是 node.js 中的快速服务器,它有一些配置可以从 Web 应用的 URL 启用 CORS
我已经为 Web 应用程序和中间件服务创建了单独的 docker 映像,并且我计划将它们部署在同一台服务器上(具有一些 IP 的云 VM 上的 Linux 机器 - a.b.c.d)
由于我知道此 VM 的 IP,我可以在 Web 应用程序(Angular 服务)中将 API URL 硬编码为 a.b.c.d/api/foo,并将中间件中的 Web 应用程序的 URL 列入白名单为 a.b.c.d:3000
但在某些情况下,VM 的 IP 地址可能会在未来发生变化,我们还将在云中自动创建 VM 并使用 ansible 脚本进行部署。在这种情况下,有什么方法可以在 Web 应用程序和中间件中使用某种占位符并在服务器上运行 docker 映像时配置 URL?或者事实上我可能在应用程序中使用的任何 URL(比如 - 数据库 URL 等)
【问题讨论】:
-
您标记了
docker- 您打算作为 docker 容器发布吗?然后查看docker network ...。您可以创建一个本地网络并使用它来连接两个容器,独立于可能更改的 IP 或 DNS 条目。 -
大多数云环境都可以为您的虚拟机分配 dns 名称,您可以使用这些名称来代替 IP 地址。你是使用 Ansible 还是其他自动化工具并不重要。如果您 (a) 告诉我们您正在使用 哪个 云环境,以及 (b) 您到目前为止是如何尝试解决这个问题的,我们可能会给您一个更好的答案。
-
它是一个用于学术研究目的的云环境。
标签: node.js angular docker express ansible