Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Beanstalk无法';t在部署时自动创建nginx配置文件_Amazon Web Services_Nginx_Amazon Elastic Beanstalk_Elasticbeanstalk - Fatal编程技术网

Amazon web services AWS Beanstalk无法';t在部署时自动创建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

我已经创建了一个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_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
    命令将其移动到正确的目录,但没有成功
  • 此外,我还尝试将创建代码放在predeply钩子中,并将手动
    echo
    命令放在代码中。我在beanstalk日志中看到了我所有的
    echo
    命令输出,但它没有做任何事情(也没有在nginx配置中创建文件,也没有将其从其他地方移动到配置文件夹)

  • 由于您使用的是亚马逊Linux 2(AL2),因此您的配置文件不正确。它们以前在AL1中工作,但对于AL2,它们位于不同的位置,具有不同的格式,如图所示

    因此,可以具有以下内容的
    .platform/nginx/conf.d/myconfig.conf
    (不在
    .ebextensions
    中):