因此,我已经设置了一个laravel应用程序,并托管在一个泊坞窗中,该泊坞窗使用运行在ALB后面的AWS ECS群集进行了托管。
到目前为止,我已经按照预期的方式启动了应用程序,并且一切正常运行(例如,会话存储在memcached中并且可以正常工作,静态资产位于S3存储桶中,等等)。
现在我只遇到1个稳定性问题,而且我不确定自己到底在哪里。当我访问我的URL /网站时,有时(随机)返回502/503 HTTP错误。发生这种情况时,我必须等待大约一分钟或2分钟,然后该应用才能返回200个HTTP代码。
这是在docker上做尾巴的结果(即nginx日志)
在这一点上,我完全迷失了方向,不确定是否应该检查其他地方。我尝试了以下方法:
答案 0 :(得分:1)
根据您的日志,ngjnx在ALB健康检查请求中回答401未经授权。您必须在/
端点中回答200 OK,或在ALB目标组中配置一个类似/ping
的端点。
使用控制台检查目标的运行状况
通过https://console.aws.amazon.com/ec2/打开Amazon EC2控制台。
在导航窗格上的LOAD BALANCING下,选择目标组。
选择目标组。
在“目标”选项卡上,“状态”列指示每个目标的状态。
如果状态为“健康”以外的任何值,请查看工具提示以获取更多信息。
更多信息:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html
答案 1 :(得分:0)
过去,由于几种可能的原因之一,我遇到过类似的问题;
为帮助完全调试,可能值得确定502/503是来自ALB还是NGINX。您也许可以通过ALB的访问日志或容器中的/var/log/nginx/access|error.log
来确定这一点。
检查是否也有帮助,响应上是否有响应主体?