Amazon web services 如何在elastic beanstalk(Amazon Linux 2)中扩展nginx配置

Amazon web services 如何在elastic beanstalk(Amazon Linux 2)中扩展nginx配置,amazon-web-services,nginx,amazon-elastic-beanstalk,amazon-linux-2,Amazon Web Services,Nginx,Amazon Elastic Beanstalk,Amazon Linux 2,我按照建议配置nginx反向代理以允许大于默认1mb的文件。所以,我的代码在 /.platform/nginx/conf.d/prod.conf 看起来像这样: http { client_max_body_size 30M; } client_max_body_size 30M; commands: 01_reload_nginx: command: "sudo service nginx reload" 然而,这似乎没有任何效果,当我尝试上载大于1mb的文件时,ngi

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

http {
  client_max_body_size 30M;
}
client_max_body_size 30M;
commands:
  01_reload_nginx: 
    command: "sudo service nginx reload"
然而,这似乎没有任何效果,当我尝试上载大于1mb的文件时,nginx仍然注册了一个错误

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

http {
  client_max_body_size 30M;
}
client_max_body_size 30M;
commands:
  01_reload_nginx: 
    command: "sudo service nginx reload"
这也没有效果

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

http {
  client_max_body_size 30M;
}
client_max_body_size 30M;
commands:
  01_reload_nginx: 
    command: "sudo service nginx reload"
这也没有效果


我已经看到和上面提到的问题,以及。但是,它们似乎都过时了,或者不适用于AmazonLinux2实例,因为它们都没有提到上面引用的ElasticBeanstalk文档中的
.platform
目录。无论如何,到目前为止,他们的答案对我都不起作用。那么,我遗漏了什么呢?

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

在.ebextensions目录中添加一个名为
01\u reverse\u 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和AmazonLinux2.11.4在内的堆栈上的问题。这不是在中记录的方式。

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

我只需在
.platform/nginx/conf.d/
上创建一个名为
proxy.conf
的文件,其中包含以下内容就足够了

client_max_body_size 50M;
如果您深入研究nginx的主配置,您将看到该文件是如何包含在文件的中间的,因此不需要使用http对其进行包装


这与adam tropp的答案类似,但它遵循了AWS给出的示例,下面的示例对我有用:

~/my-app/
|-- web.jar
|-- Procfile
|-- readme.md
|-- .ebextensions/
|   |-- options.config        # Option settings
|   `-- cloudwatch.config     # Other .ebextensions sections, for example files and container commands
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   |-- nginx.conf
    |   `-- conf.d/
    |       `-- custom.conf

这是广告宣传的作品;但是,这个文件不能包含位置块,这就是我的想法。对于位置块,您可以创建一个文件
.platform/nginx/conf.d/elasticbeanstalk/location.conf
,其中位置可以是任何名称。elasticbeanstalk子目录中的文件包含在适合位置块的位置。嗨,我也面临同样的问题。有人能告诉我:我应该用一个值来更改“.platform”吗?如果这是实际名称,我应该在.ebextensions文件夹中创建.platform文件夹吗?还是别的什么?谢谢你的研究,本!知道了这一点,我就省去了很多心痛,因为我试图在一个实例上获得一个公共IP来进行SSH,并找出如何添加自定义位置块。结果还是失败了:您可以通过放入
.platform/nginx/conf.d/elasticbeanstalk/00_application.conf
来覆盖整个默认的NodeJS nginx侦听器。这是修改EBS中默认
位置/
设置的唯一方法!检查amazon linux版本,并在此基础上尝试。以上是针对AmazonLinuxRelease2(Karoo)的,这是如何在旧版本的AmazonLinux上配置它,投票率较高的答案是针对AmazonLinux2的。