无法增加 AWS Elastic Beanstalk 上的超时

Cyr*_* N. 3 amazon-web-services amazon-elastic-beanstalk

我尝试增加 Amazon Elastic Beanstalk 的超时,但仍然收到 504 网关超时。

这是我到目前为止所做的:

.ebextensions/timeouts.config:

option_settings:
  - namespace: aws:elb:policies
    option_name: ConnectionSettingIdleTimeout
    value: 940
  - namespace: aws:elbv2:loadbalancer
    option_name: IdleTimeout
    value: 940

files:
  "/etc/nginx/conf.d/nginx.timeouts.conf":
      mode: "644"
      owner: "root"
      group: "root"
      content: |
        client_header_timeout   5;
        client_body_timeout     10;
        send_timeout            940;
        proxy_connect_timeout   2;
        proxy_read_timeout      940;
        proxy_send_timeout      10;

container_commands:
  01_update_nginx:
    command: "sudo sed -i 's/keepalive_timeout  65;/keepalive_timeout  940;/g' /etc/nginx/nginx.conf"
  02_restart_nginx:
    command: "sudo service nginx restart"
Run Code Online (Sandbox Code Playgroud)

过程文件:

web: gunicorn --bind :8000 --workers 10 --timeout 935 --graceful-timeout 935 main:app
Run Code Online (Sandbox Code Playgroud)

尽管如此,我仍然在 60.1 秒后收到“504 网关超时”消息。

我缺少什么才能让它发挥作用?

Mar*_*cin 8

您的/etc/nginx/conf.d/nginx.timeouts.conf不起作用,因为这是基于Amazon Linux 1 (AL1) 的 EB 平台的有效文件。然而,正如评论中所证实的,您正在使用 AL2。

对于 AL2,nginx 设置应位于 中.platform/nginx/conf.d/,而不是“反向代理配置”部分中的文档.ebextentions中所示的位置。

因此,您可以尝试创建以下.platform/nginx/conf.d/myconfig.conf内容的文件:

client_header_timeout   5;
client_body_timeout     10;
send_timeout            940;
proxy_connect_timeout   2;
proxy_read_timeout      940;
proxy_send_timeout      10;
Run Code Online (Sandbox Code Playgroud)