如何更改 AWS Beanstalk Flask 应用程序的 NGINX 设置以防止出现 504 超时错误?

How do I change the NGINX settings for a AWS Beanstalk Flask app to prevent a 504 TImeout error?

我在调整 Elastic Beanstalk Flask 应用程序中 NGINX 的代理连接、读取和发送设置时遇到问题。我的应用程序进行了一些长时间的计算,因此我试图增加超时时间。这是我拥有的:

在我项目的根目录中有一个目录:

.ebextensions/nginx/conf.d/myconf.conf

myconf.conf如下:

client_max_body_size    10m;
client_body_buffer_size 128k;
proxy_connect_timeout   180;
proxy_send_timeout      180;
proxy_read_timeout      180;

.conf 文件是 UTF-8。这似乎是 AWS 网站上指定的内容:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-nginx.html

但是,60 秒后我仍然收到 504 错误。我已经尝试了很多迭代,比如将我的 .conf 文件放在 .platform/nginx/conf./ 目录中。那里没有运气。我也广泛阅读了这个线程,但似乎无法从中提取我需要的东西:Increasing client_max_body_size in Nginx conf on AWS Elastic Beanstalk

如果有人对我应该如何构造此文件路径和 myconf.conf 文件有任何建议,我是否遗漏了 headers、引号、大括号?那太好了。非常感谢!

由于 Marcin post 的回答,我找到了解决方案:

问题是我的 EB 实例使用的是 Amazon Linux2。这意味着我的 .config 文件需要位于:

.platform/nginx/conf.d/

在此目录中,我创建了一个名为 mytimeout.conf 的文件(我也在调整超时限制)并在该文件中包含以下内容:

keepalive_timeout 240s;
proxy_connect_timeout 240s;
proxy_send_timeout 240s;
proxy_read_timeout 240s;
fastcgi_send_timeout 240s;
fastcgi_read_timeout 240s;

client_max_body_size 5M;

我更新了我的亚马逊应用程序并在更新时包含了 .platform 文件,并且能够上传大于 1 MB 的文件并且没有超时错误。