node.js - 在 Elastic Beanstalk 节点上配置 nginx client_max_body_size
问题描述
我有一个在 Elastic Beanstalk 上运行的 Node 10 应用程序,当请求有效负载大于 ~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>
该请求根本没有打到我的应用程序;它被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;
那没有用,所以我尝试将文件直接添加到.ebextensions/nginx/conf.d/proxy.conf
:
client_max_body_size 20M;
这也没有奏效。然后我通过 SSH 进入实例并直接添加文件。重新部署后,整个conf.d
目录被删除并重写,没有这个文件。
如何在 64 位 Amazon Linux 2/5.1.0 上运行带有 Node.js 10 的 AWS Elastic Beanstalk 以接受 nginx 配置?
解决方案
nginx
您尝试使用的设置 ( /etc/nginx/conf.d/proxy.conf
) 适用于Amazon Linux 1。
由于您使用的是Amazon Linux 2,因此您应该使用不同的文件来设置 nginx。对于 AL2,nginx 设置应该是 in .platform/nginx/conf.d/
,而不是文档.ebextentions
中所示的 in 。
因此,您可以拥有以下.platform/nginx/conf.d/myconfig.conf
内容:
client_max_body_size 20M;
以上只是配置文件的一个示例。我无法验证该设置是否真的有效,但您肯定使用了错误的文件夹来设置 nginx 选项。
我的建议是尝试通过 ssh 手动使其工作,就像您现在尝试的那样。.platform/nginx/nginx.conf
如果通过提供您自己的文件没有任何效果,您可能会发现您需要覆盖整个 nginx 设置。
推荐阅读
- c++ - 带有 GDB 调试器的 VS Code 内存视图
- swift - 为什么我不能扩展 IntegerType?
- r - 我希望根据每个分组级别内的子列表保留/丢弃 PURRR 嵌套列表中的项目
- gitlab-api - 如何通过 id 检索 gitlab 问题?
- java - org.apache.commons.lang3.time.DateFormatUtils.format() 线程安全吗?
- python - 如何在 Selenium 上的 Internet Explorer 上保留登录凭据
- google-cloud-platform - 控制GPU机器从一个功能启动和停止?
- jquery - 收集所有复选框的所有值以通过ajax
- reactjs - 是否可以将 react-konva 应用到 React Native 项目中?
- mysql - MySQL 不相关的列或使用行号连接表