gpt4 book ai didi

amazon-web-services - 即使主机健康并且能够处理请求,ELB 也会返回 HTTP 504 错误

转载 作者:行者123 更新时间:2023-12-04 04:16:10 26 4
gpt4 key购买 nike

我有一项部署在 Amazon Web Services (AWS) 上的服务,特别是在弹性负载均衡器 (ELB) 后面的 2 个实例。可用区被选为所有三个 us-west-2a,b,c
但上述 3 个区域中只有 2 个在其中运行实例。

问题是,即使流量/负载不是太高,但我仍然经常从 ELB 收到 HTTP 504 错误。

日志行是这样的

-1 -1 -1 504 0 0 0



依次为 --request_processing_time --backend_processing_time --response_processing_time --elb_status_code --backend_status_code --received_bytes --sent_bytes。
Description of what each field and response means can be found here

ELB 空闲超时为 60 秒。 KeepAlive在后端实例上为“开启”。来自 ELB 的请求延迟正在检查中。我试过增加 KeepAliveTimeout但无济于事。

有没有人知道如何继续?我什至不知道这个问题的根本原因。

PS:更像是第二个问题,在某些情况下(当后端甚至不接受请求时,ELB 返回的返回值远小于 504),其中甚至后端返回 504,然后 ELB 将其转发给客户端。据我所知,只有当后端超时时,代理才应返回 HTTP 504。服务器本身如何返回 504?

最佳答案

为了将来可以帮助其他人,我在这里发布我的发现:

1) 这个 504 0 HTTP 错误主要是因为 logrotate 重新加载 apache 而不是正常重启。
当前的 AWS 配置执行以下操作

/sbin/service httpd reload > /dev/null 2>/dev/null || true

所以用 apachectl -k graceful 替换 service 命令或 /sbin/service httpd graceful
我的 ec2 实例上的文件位置: /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.httpd.conf
2)因为默认情况下,AWS 中的 logrotate 频率太高(每小时一次),至少对于我的用例,这反过来每小时重新加载 apache,所以我也减少了它。

关于amazon-web-services - 即使主机健康并且能够处理请求,ELB 也会返回 HTTP 504 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37280417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com