Tyl*_*ler 2 nginx amazon-ec2 amazon-web-services node.js amazon-elastic-beanstalk
我有一个 Node 10 应用程序在 Elastic Beanstalk 上运行,当请求负载大于 ~1MB 时,它会抛出 413 错误。
<html>
<head>
<title>413 Request Entity Too Large</title>
</head>
<body>
<center>
<h1>413 Request Entity Too Large</h1>
</center>
<hr>
<center>nginx/1.16.1</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
该请求根本没有击中我的应用程序;它被 nginx 拒绝了。
我曾尝试根据此答案配置 AWS 以增加允许的请求正文的大小,但无济于事。
我试过添加一个.ebextensions/01_files.config包含内容的文件:
files:
"/etc/nginx/conf.d/proxy.conf" :
mode: "000755"
owner: root
group: root
content: |
client_max_body_size 20M;
Run Code Online (Sandbox Code Playgroud)
那不起作用,所以我尝试将文件直接添加到.ebextensions/nginx/conf.d/proxy.conf:
client_max_body_size 20M;
这也不起作用。然后我通过 SSH 连接到实例并直接添加文件。重新部署后,整个conf.d目录被删除并重新写入,没有这个文件。
如何让 AWS Elastic Beanstalk 在 64 位 Amazon Linux 2/5.1.0 上运行 Node.js 10 以接受 nginx 配置?
nginx您尝试使用的设置 ( /etc/nginx/conf.d/proxy.conf) 适用于Amazon Linux 1。
由于您使用的是Amazon Linux 2,因此您应该使用不同的文件来设置 nginx。对于 AL2,nginx 设置应该在 中.platform/nginx/conf.d/,而不是在文档中.ebextentions显示的。
因此,您可以拥有以下.platform/nginx/conf.d/myconfig.conf内容:
client_max_body_size 20M;
Run Code Online (Sandbox Code Playgroud)
以上只是配置文件的一个例子。我无法验证设置是否真的有效,但您肯定使用错误的文件夹来设置 nginx 选项。
我的建议是像您现在尝试的那样尝试通过 ssh 手动使其工作。您可能会发现,如果通过提供您自己的.platform/nginx/nginx.conf文件没有任何效果,您需要覆盖整个 nginx 设置。
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |