【问题标题】:Increase client_max_body_size on Aws Elastic Beanstalk在 Aws Elastic Beanstalk 上增加 client_max_body_size
【发布时间】:2021-03-16 16:08:05
【问题描述】:

来源:AWS Elastic Beanstalk Linux 2 .NET Core API

收到 413 Request Entity Too Large 错误后,我研究了解决方案。当我使用 ssh 连接到机器并使用 nano /etc/nginx/nginx.conf 命令执行 client_max_body_size 20M 时,一切正常。

但是当一个新的部署到来时,它会回到旧的部署。

通过研究,我在项目的根目录下创建了 .platform/nginx/conf.d/proxy.conf 文件。

proxy.conf 内容:

client_max_body_size 1024M;

我还创建了 .platform/00_myconf.config 文件。

00_myconf.config 内容:

container_commands:
   01_reload_nginx:
     command: "service nginx reload"

添加这些后上传和部署时,我不断收到相同的错误(413 Request Entity Too Large)。

通过 ssh 连接到机器 我在使用 nano /etc/nginx/nginx.conf 命令的文件中找不到 max_body_size 行。

【问题讨论】:

    标签: linux amazon-web-services .net-core amazon-elastic-beanstalk nginx-config


    【解决方案1】:

    这是旧的,希望你已经弄清楚了。

    如果没有,你找不到client_max_body_size行的原因是默认不存在,你必须添加它。

    ssh 进入实例然后:

    cd /etc/nginx/conf.d/
    sudo nano proxy.conf
    

    粘贴:

    client_max_body_size 1024M;
    

    然后保存并退出。

    最终运行:

    sudo service nginx restart
    

    不幸的是,存储在 ec2 上的文件是短暂的,并且在每次部署或实例出现故障时都会丢失。到目前为止,我还没有找到 dotnet 的代码内解决方案,但会在我找到时更新。

    编辑:好的,在代码解决方案中(即,不依赖于 EC2 临时存储):

    在 /.platform/nginx/conf.d/proxy.conf 中创建一个文件,内容如下:

    client_max_body_size 100M;
    

    确保在 Visual Studio 的属性中将此文件的“复制到输出目录”设置为“始终”,并且构建操作为“内容”。

    【讨论】:

    • 查看我几周前提供的编辑,它位于代码内解决方案中,不依赖于 EC2 实例后面的临时存储。它是在实例部署时写入的。您无需执行额外的维护。我已将此部署用于生产 ASG。我再次编辑了答案以使其更清楚,请阅读完整答案。
    • 这就是我给你的答案! elastickbeanstalk 目录不是必须的
    • 我尝试了很多解决方案,但没有弹性 beanstalk 文件夹不起作用
    • 哇,这真的很奇怪。其他人阅读本文,您不需要该部分。很高兴我能帮上忙。
    • @Shaun 原来我们的问题是行尾设置为 Windows,而不是 AWS 使用的 Linux,所以它一直在爆炸。
    猜你喜欢
    • 2013-09-25
    • 2020-08-12
    • 2018-10-27
    • 2020-11-05
    • 2015-01-30
    • 2021-06-27
    • 2014-08-21
    • 2020-08-01
    • 2020-12-23
    相关资源
    最近更新 更多