像你这样的超时错误最好通过改进软件本身来解决,但如果由于任何原因无法解决,那么你可以增加你的 nginx 和负载均衡器的超时时间。
在以前版本的 Amazon Linux 中,您需要在名为 .ebextensions 的目录中使用自定义 nginx 配置部署代码
对于 Amazon Linux 2,情况完全相同,只是略有不同,您需要使用 .platform 文件夹来进行平台配置,而不是使用 .ebextensions。
因此,在您应用的预期 ElasticBeanstalk 包中创建以下结构 -
eb-package
└── src
└── .ebextensions
└── .platform
└── nginx
└── conf.d
└── timeout.conf
并将以下内容添加到您的timeout.conf 文件中
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
您应该知道,在某些情况下,您需要通过使用 AWS 控制台(在 EC2 下)手动配置负载均衡器或在 .ebextensions 目录中提供配置文件来增加负载均衡器的超时时间
例如(注意:此配置会因您使用的负载均衡器类型而异):
option_settings:
- namespace: aws:elb:policies
option_name: ConnectionSettingIdleTimeout
value: 300
查看 Classic Load Balancer 与 Application Load Balancer 配置
在 AWS 的文档中(根据 2021 年 8 月 29 日),较新的 Application Load Balancer 没有默认超时。
Classic Load Balancer 的超时时间为 60 秒。
aws:elb:policies
对比
aws:elbv2:loadbalancer
有关详细信息,请参阅