![](/img/trans.png)
[英]Problems accessing Spring-Boot RestController from Angular frontend
[英]AKS K8S - access spring-boot app from angular frontend using service name
我有两个使用 angular 开发的应用程序前端和使用 spring-boot 开发的后端。 两个应用程序都在同一个命名空间中运行。
已经创建了两种类型的服务:负载均衡器。
frontend-app-lb
(暴露 9001)backend-app-lb
(暴露 9000)。 我可以通过外部 Ip 获得响应。 使用 curl http://<External-ip>:900[0/1]/
在 angular 应用程序中,我配置了 environment-prod.ts,baseurl 为http://<External-ip-of-backend-app-lb>:9000/
。 在允许 CORS 的情况下,能够访问后端应用程序。
我也知道,如果应用程序在不同的命名空间中运行,我们可以使用这个http://<service-name>.<namespace>.svc.cluster.local:port
从不同的命名空间访问应用程序/pod。
如何仅使用 baseurl 中的服务名称(例如http://backend-app-lb:9000
)访问在同一命名空间中运行的后端应用程序。 - 这可能吗?
我发现,访问http://backend-app-lb:9000
可能不是一种方法。
其他方法:
方法 #1:使用 Azure 应用程序网关:
将后端服务公开为 LoadBalancer 类型的服务(在我的例子中是部署在 AKS 中的应用程序)。 因此配置了应用程序网关(第 7 层)。
/backend-api
连接到后端应用程序。 在前端应用程序environment.prod.ts
,使用/backend-api
作为 baseurl 连接到后端 api。
方法 2:使用 Nginx 代理
这两种方法在某种程度上使前端应用程序对后端服务的访问变得简单,并且在构建期间无需进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.