angular - 在 AWS 中连接前端到后端
问题描述
我有一个用 Angular 编写的 UI 应用程序,它有一个在 NodeJS 中运行的后端。我还有两个将从 NodeJS 后端调用的服务。这些应用程序在 docker 容器中运行,并部署到 AWS 中的 Kubernetes 集群。
流程是这样的:
AngularUI -> NodeJS -> Service1/Service2
AngularUI 和 NodeJS 位于同一个 docker 容器中,而其他两个服务位于 2 个单独的容器中。
我已经能够让服务在 AWS 上的 Kubernetes 中运行。服务到服务调用(服务 1-> 服务 2)工作正常,因为我使用 k8s 标签调用它们。
现在我无法弄清楚如何从 Angular 前端调用 NodeJS 后端,因为请求是在客户端执行的。我无法提供服务 ELB 的 IP,因为每次部署都会更改 IP。
我尝试创建一个指向 Angular UI 的 ELB IP 的 AWS API 网关,但这并没有提供页面。
这样做的正确方法是什么?任何帮助深表感谢。
解决方案
ELB 有一个静态 DNS 主机名,例如foobar.eu-west-4.elb.amazonaws.com
. 当您手头有一个域时,创建一个指向此 DNS 主机名的 A 记录(别名)。例如
webservice.mydomain.com -> mywebservicelb.eu-west-4.elb.amazonaws.com
您还可以使用静态 IP 地址,这似乎是一个相当新的功能:
每个网络负载均衡器为其权限范围内的每个可用区提供一个 IP 地址。如果您在 us-west-2a 中有目标,在 us-west-2c 中有其他目标,NLB 将创建和管理两个 IP 地址(每个 AZ 一个);与该 IP 地址的连接将在 AZ 中所有 VPC 子网中的实例之间传播流量。您还可以为每个 AZ 指定一个现有的弹性 IP,以实现更大的控制。通过完全控制您的 IP 地址,网络负载均衡器可用于需要将 IP 地址硬编码到 DNS 记录、客户防火墙规则等的情况。
推荐阅读
- c# - 使用 C# 更新 SQL 表
- kernel - 内核是否跟踪进程在内存中的启动位置或 CPU?
- amazon-web-services - 非法指令(核心转储)docker、red hat 7.7、aws ec2
- html - Flexbox 不工作 - 它似乎只适用于某些子元素?
- python - 如何从锚标签中抓取数据,该标签位于 selenium python 中的另一个锚标签内
- c++ - 使用混合结构元素类型将可迭代元素添加到结构
- docker - Docker Build 在编译缺少文件的 .NetCore 项目时不会中断 - 而是说“成功”
- swift - Swift 的写时复制线程安全吗?
- javascript - React 中组件默认导出/导入的问题
- python - Python:连续发送多于一封电子邮件时出错