调用服务时,aws内部负载均衡器net :: ERR_NAME_NOT_RESOLVED

时间:2020-08-28 09:13:04

标签: amazon-web-services amazon-ec2

我有一个3层ECS容器应用程序。在表示层中,我有一个公共子网,其中在nginx服务器上运行有一个角度应用程序。为此,我有面向互联网的应用程序负载均衡器。在专用子网中,我具有Java Spring REST API服务,该服务在端口8080上的tomcat服务器上运行,因此有应用程序内部负载平衡器。在另一个专用子网中,我有RDS数据库。

应用程序客户端将请求发送到内部负载平衡器url,并在应用程序中呈现响应。

虽然我可以在公共子网中SSH到ec2并卷曲以在私有子网中休息服务并获得响应: curl -X POST http://internal-qa-XXXXX-XXXXXXX.eu-west-2.elb.amazonaws.com:8080/api/products/all 在浏览器中访问客户端时,我无法收到响应。该应用程序正常运行,但是在浏览器控制台中进行检查时,我看到: POST http://internal-qa-XXXXX-XXXXXXX.eu-west-2.elb.amazonaws.com:8080/api/products/all net::ERR_NAME_NOT_RESOLVED. 我用Docker日志检查了容器,它们运行得很好。 安全组和NACL配置正确,我什至检查了所有允许的流量

1 个答案:

答案 0 :(得分:1)

基于评论。

该问题很可能是由于从客户端(即浏览器)调用了Internet负载均衡器的url端点引起的。

内部负载均衡器的网址不可公开调用。

要解决此问题,必须将应用程序修改为仅使用公共可用的端点,或者将内部负载平衡器更改为面向Internet。