Amazon web services AWS Beanstalk无法';t在部署时自动创建nginx配置文件
我已经创建了一个Django API应用程序,它部署在AWS Beanstalk Amazon Linux 2(Python 3.8)上。在我的应用程序中,用户应该能够通过API上传文件 默认情况下,当上传的文件大于3MB并在Nginx日志中记录“用户尝试上传巨大文件”时,Nginx将向用户返回CORS错误 唯一适合我的解决方案是创建下面的配置文件并重新加载Nginx:Amazon web services AWS Beanstalk无法';t在部署时自动创建nginx配置文件,amazon-web-services,nginx,amazon-elastic-beanstalk,elasticbeanstalk,Amazon Web Services,Nginx,Amazon Elastic Beanstalk,Elasticbeanstalk,我已经创建了一个Django API应用程序,它部署在AWS Beanstalk Amazon Linux 2(Python 3.8)上。在我的应用程序中,用户应该能够通过API上传文件 默认情况下,当上传的文件大于3MB并在Nginx日志中记录“用户尝试上传巨大文件”时,Nginx将向用户返回CORS错误 唯一适合我的解决方案是创建下面的配置文件并重新加载Nginx: /etc/nginx/conf.d/proxy.conf: client_max_body_size 50M; client
/etc/nginx/conf.d/proxy.conf
:
client_max_body_size 50M;
client_max_body_size 50M;
然后:
sudo服务nginx重新加载
我通过SSH连接到我的beanstalk应用程序的主机EC2,手动完成了这个过程。我希望在每个部署和每个实例中自动执行此过程
我在.ebextensions
文件夹中创建了一个名为nginx\u max\u upload.config
的文件,该文件位于我的项目根目录中:
nginx\u max\u upload.config
:
files:
/etc/nginx/conf.d/proxy.conf:
mode: "000755"
owner: root
group: root
content: |
client_max_body_size 50M
commands:
reload_nginx:
command: "sudo service nginx reload"
ignoreErrors: true
我的问题是,上面的代码没有在指定的目录中创建我想要的文件。当我将目录更改为另一个目录,如/usr/local/bin/proxy.conf
,文件将成功创建,但无法在Nginx配置文件夹中创建配置文件
我想问题可能来自权限,但我不知道如何将所需的权限授予部署代理
此外,我尝试过这两种解决方案,但都不起作用:
mv
命令将其移动到正确的目录,但没有成功echo
命令放在代码中。我在beanstalk日志中看到了我所有的echo
命令输出,但它没有做任何事情(也没有在nginx配置中创建文件,也没有将其从其他地方移动到配置文件夹)由于您使用的是亚马逊Linux 2(AL2),因此您的配置文件不正确。它们以前在AL1中工作,但对于AL2,它们位于不同的位置,具有不同的格式,如图所示 因此,可以具有以下内容的
.platform/nginx/conf.d/myconfig.conf
(不在.ebextensions
中):