我有弹性 beantalk 的 nginx client_max_body_size 设置问题

Posted

技术标签:

【中文标题】我有弹性 beantalk 的 nginx client_max_body_size 设置问题【英文标题】:I have a nginx client_max_body_size setting issue with elastic beanstalk 【发布时间】:2020-12-31 18:52:19 【问题描述】:

我正在使用带有 codePipeline 的 elasticbeanstalk 进行部署。

我必须增加要上传的文件大小, 所以我添加 02_nginx.config 文件是我的应用程序目录(.ebextensions)。

这是我的 -2_nginx_config

#Elastic Beanstalk configuration for  413 Request Entity Too Large:.


container_commands:
  01_reload_nginx:`enter code here`
  command: "sudo service nginx reload"

  files:
  "/etc/nginx/conf.d/proxy.conf" :
  mode: "000644"
  owner: root
  group: root
  content: |
  client_max_body_size 100M;

部署时出现问题。 这是消息:

部署已完成,但出现错误:无法部署应用程序。应用程序版本 code-pipeline-1600053611774-BuildArtifact-5e317627-6a37-4548-aa47-f6d4ebb03e2f 中的配置文件 .ebextensions/02_nginx.config 包含无效的 YAML 或 JSON。 YAML 异常:无效的 Yaml:扫描“”中的简单键时,第 13 行,第 3 列:client_max_body_size 0; ^ 在“”第 14 行第 1 列中找不到预期的 ':':^,JSON 异常:无效 JSON:位置 0 处出现意外字符 (#)。更新配置文件。

什么问题?

【问题讨论】:

【参考方案1】:

您尝试使用的 nginx 设置 (/etc/nginx/conf.d/proxy.conf) 适用于 Amazon Linux 1

由于您可能使用的是 Amazon Linux 2,因此您应该使用不同的文件来设置 nginx。对于 AL2,nginx 设置应该在.platform/nginx/conf.d/ 中,而不是在.ebextentions 中,如docs 中所示。

因此,您可以拥有以下 .platform/nginx/conf.d/myconfig.conf 的内容:

client_max_body_size 100M;

如果你使用.platform,你也不需要重启nginx。所以基本上,用.platform/nginx/conf.d/myconfig.conf替换你的my-2_nginx_config

【讨论】:

我必须在我的应用程序目录中创建 .platform/nginx/conf.d/ 吗?然后我应该做 myconfig.config? @김기현 是的。只需检查您使用的是基于 Amazon Linux 2 的 EB 平台,而不是基于 Amazon Linux 1 的旧平台。 是的,我检查了我的 linux 是 2. 首先。我在我的应用程序平台/nginx/conf.d/中创建目录接下来,我写“client_max_body_size 100M”;这就是 myconfig.conf 中的全部内容吗?我的意思是,只是扭动“”client_max_body_size 100M;”,而不是其他任何东西 第一。如何检查我的 linux 是 1 还是 2?而且我认为我的 linux 是 2。我成功部署了它。如何检查 .conf 文件是否成功运行?上传大小问题仍未解决.. @김기현 最好是通过 ssh 进入实例并从那里检查 nginx 设置。您的环境的 EB 控制台将在右侧的徽标下方显示您的平台版本。

以上是关于我有弹性 beantalk 的 nginx client_max_body_size 设置问题的主要内容,如果未能解决你的问题,请参考以下文章

在弹性 beantalk 上自定义 nginx.conf

将 django docker 容器部署到弹性 beantalk

如何从 cli 本地连接到现有的弹性 beanstalk 实例?

.Net 5 AWS nginx Linux弹性beantalk改变client_max_body_size

AWS 弹性 beantalk 上的 postgraphile 出现 408 超时错误

如何在同一个弹性beantalk实例上运行socket.io和表达?