如何在弹性beantalk中扩展nginx配置(Amazon Linux 2)

时间:2020-04-20 23:23:04

标签: amazon-web-services nginx amazon-elastic-beanstalk amazon-linux-2

我遵循建议here,将nginx反向代理配置为允许大于默认1mb的文件。所以,我的代码在 /.platform/nginx/conf.d/prod.conf 看起来像这样:

http {
  client_max_body_size 30M;
}

但是,这似乎没有任何作用,当我尝试上传大于1mb的文件时,nginx仍然会记录错误。

我还尝试了在没有http和花括号的情况下执行此操作,如已接受的this question答案中所述,如下所示:

client_max_body_size 30M;

这也没有效果。

我认为应用配置后可能需要重启nginx,因此我在.ebextensions目录中添加了一个名为01nginx.config的文件,如下所示:

commands:
  01_reload_nginx: 
    command: "sudo service nginx reload"

这也没有效果。

我已经看到this question和上面提到的问题以及this one。但是,它们似乎都已过时或不适用于Amazon Linux 2实例,因为它们均未提及上述弹性beantalk文档中的.platform目录。无论如何,到目前为止,他们的答案都没有对我有用。所以,我想念什么?

3 个答案:

答案 0 :(得分:7)

迁移到Amazon Linux 2时,我遇到类似的问题。

仅在.platform/nginx/conf.d/处创建一个名为proxy.conf的文件,其内容如下即可。

client_max_body_size 50M;

如果您深入研究nginx的主要配置,您将看到此文件是如何包含在文件中间的,因此无需使用http包裹它。

这类似于adam tropp的回答,但它遵循AWS给出的示例

答案 1 :(得分:1)

好的,经过多次尝试,我能够这样解决:

在.ebextenstions目录中添加一个名为01_reverse_proxy.config的文件(名称无关紧要,我认为只是.config部分)

在该文件中,完全放置以下内容:

files:
  "/etc/nginx/conf.d/proxy.conf" :
  mode: "000755"
  owner: root
  group: root
  content: |
    client_max_body_size 30M;
commands:
  01_reload_nginx:
    command: "service nginx reload"

具有适当的YAML间距。这解决了包括Rails,Puma和Amazon Linux 2.11.4在内的堆栈上的问题。这不是elastic beanstalk linux platforms documentation中记录的方式。

答案 2 :(得分:0)

以下为我工作:

BsonDefaults