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

ada*_*opp 4 nginx amazon-web-services amazon-elastic-beanstalk amazon-linux-2

我按照这里的建议配置 nginx 反向代理以允许大于默认 1mb 的文件。所以,我的代码 /.platform/nginx/conf.d/prod.conf 如下所示:

http {
  client_max_body_size 30M;
}
Run Code Online (Sandbox Code Playgroud)

但是,这似乎没有效果,当我尝试上传大于 1mb 的文件时,nginx 仍然会注册错误。

我也尝试在没有http大括号的情况下执行此操作,如此问题的已接受答案中所述,如下所示:

client_max_body_size 30M;
Run Code Online (Sandbox Code Playgroud)

这也没有效果。

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

commands:
  01_reload_nginx: 
    command: "sudo service nginx reload"
Run Code Online (Sandbox Code Playgroud)

这也没有效果。

我已经看到了这个问题和上面提到的问题,以及这个问题。但是,它们似乎都已过时或不适用于 Amazon Linux 2 实例,因为它们都没有提到.platform上述引用的 elastic beanstalk 文档中的目录。无论如何,到目前为止,他们的答案都没有对我有用。那么,我错过了什么?

小智 18

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

只需在创建一个文件.platform/nginx/conf.d/名为proxy.conf与下面的内容对我来说已经足够了。

client_max_body_size 50M;
Run Code Online (Sandbox Code Playgroud)

如果你深入研究 nginx 的主要配置,你会看到这个文件是如何包含在文件中间的,所以不需要用 http 包裹它。

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

  • 对于位置块,您可以创建一个文件“.platform/nginx/conf.d/elasticbeanstalk/location.conf”,其中位置可以是任何名称。elasticbeanstalk 子目录中的文件包含在适合位置块的位置。 (5认同)
  • 我遇到了类似的问题,并写了一篇关于操作 nginx 配置的不同方法的要点。您可以在这里找到它:https://gist.github.com/henhan/2943013c9064606425b0ee5bb1ca8c99 (5认同)