【发布时间】:2018-03-15 01:48:27
【问题描述】:
我在重复我在https://forums.aws.amazon.com/thread.jspa?threadID=275855&tstart=0 发布的一个问题 接触更多的人。
嗨,
我正在尝试在 AWS 中部署 REST 服务。目前的架构是: 域名 (Route 53) -> 负载均衡器 -> 单个 EC2 实例(绑定到弹性 IP)。而且我使用证书管理器颁发的 TLS/SSL 证书。
实例是 Ubuntu 16.04 机器,服务是用(裸)Vert.X(==无代理服务器)实现的。
但是,504 错误(网关超时)发生在一系列不同的请求(每个请求
我运行了一个返回“hello world”的虚拟服务器,它与负载平衡器一起工作正常。问题应该是由于负载平衡器和服务器代码之间的不一致造成的,但我不知道从哪里开始。
我检查了几个抱怨 504 错误的线程,并遵循了一些说明,但它们不起作用。特别是我在 Vert.x 中设置了 keep-alive 选项,并将空闲时间设置为比平衡器更长。由于延迟不超过直接通信的空闲时间,我相信无论如何这不是问题。我还检查了安全组并确认正确的端口已打开。 (前几个请求是有效的,所以它一定不是问题。)
你们中有人知道我应该从哪里开始看吗?更好的是,知道问题的根源吗?
提前致谢。
编辑:我刚刚在一些代码中发现了问题。我已经在下面回答了自己。感谢阅读!
【问题讨论】:
-
您的健康检查通过了吗?运行
aws elb describe-instance-health --load-balancer-name my-load-balancer你在输出的描述中有什么吗?这是经典的ELB吗?可以试试直接用 EIP 访问应用吗? -
是的,健康检查工作正常,这就是前几个请求得到响应的原因。正如我在下面回答的那样,我发现问题出在我的代码中。不过感谢您的建议!
标签: amazon-web-services vert.x elastic-load-balancer