我的公司决定将包含多个服务的整个解决方案封装到一个单一的单块容器中(除最佳实践外,我很清楚这与1容器=1服务的微服务方法是背道而驰的)。实际上,理论上,以下端口应该侦听流量:
当我在实例中托管这个容器时,前端服务就会自行出现,没有问题(路由是/)。但是,后端服务被映射到/services/* (实际上是上面的:8081/services/* ),并包含一个前端需要真正“功能”的配置文件。然而,这似乎是无法访问的,因为web应用试图代理到localhost:8081/services/*以获得它(因为它是容器本身的本地主机)。
允许web应用程序调用这些不同端口上的附加服务(S)的最佳方法是什么?
我最初以为我可以在web应用程序前面放置一个Azure应用程序网关作为反向代理,并执行主机名重写来重写8081端口(FQDN/IP)上的请求(FQDN/IP):8081,但这似乎不正确(错误代码和视觉上没有区别)。我还考虑过在容器中放置一个像Nginx这样的反向代理,但我想看看是否可以先在外部完成,以停止增加这个已经很大的映像的大小,或者这是否是一种选择。
发布于 2022-10-10 08:40:48
用于容器的Azure应用程序从容器中公开一个端口。检测端口3000 first (3000<8081)。
容器中的Revers代理将解决您的问题。容器外的测试将无法工作。
为了进行测试,您可以将端口3000更改为8082。后端/服务/*将可用,但前端不会。
https://devops.stackexchange.com/questions/16708
复制相似问题