弹性豆荚 - NGINX - 413请求实体过大

3

我知道这可能被认为是重复的:在AWS Elastic Beanstalk中自定义Nginx配置(以及其他问题),但是我无法使我的代码与任何提出的解决方案一起工作。

这是我的config.yml文件的外观(xxx = 环境名称):

branch-defaults:
    master:
        environment: xxx
    environment-defaults:
      xxx:
        branch: master
        repository: xxx
    global:
      application_name: xxx
      default_ec2_keyname: null
      default_platform: arn:aws:elasticbeanstalk:eu-west-1::platform/Node.js running on
        64bit Amazon Linux/4.3.0
      default_region: eu-west-1
      instance_profile: null
      platform_name: null
      platform_version: null
      profile: null
      sc: git
      workspace_type: Application

然后添加:
http:
  files:
    "/etc/nginx/conf.d/proxy.conf" :
      mode: "000755"
      owner: root
      group: root
      content: |
          http {
            client_max_body_size 20M;
          }
container_commands:
  01_reload_nginx:
    command: "service nginx reload"

为了允许更大的有效载荷并尝试在部署后重新启动nginx以接受更改。但是,即使它似乎是被接受的方法,在我的代码中却无法正常工作。除小于1mb的较小文件外,其他所有内容都完美地运行。

谢谢你的帮助!


你尝试过将 client_max_body_size 增加到 50M 吗? - undefined
我正在发送一个3MB的文件。你觉得20和50有什么区别吗? - undefined
@JanRuno 你找到解决方案了吗? - undefined
  1. 打开 .ebextensions 并验证 nginx 配置文件的名称。它必须以 .config 结尾。
  2. 验证 .ebextensions 内容是否复制到应用程序包中。
  3. SSH 到 EC2 实例并验证部署后是否创建了文件 /etc/nginx/conf.d/proxy.conf
- undefined
  1. .ebextensions 应该放在应用程序包的根目录下。
- undefined
1个回答

0

你想在设置了client_max_body_size 20M;的EC2 nginx.conf文件后,为你的EC2用户添加EC2InstanceConnect权限。(根据你的需求,你可以增加client_max_body_size的大小)

-前往你的AWS控制台

-搜索IAM用户并进入分配给你用户的用户组

-在添加权限选项卡中,点击“附加策略”

-搜索EC2InstanceConnect策略并附加它。

编辑nginx.conf文件并重新加载nginx

-你可以在etc/nginx下找到nginx.conf文件。这是你从哪里开始进入etc的方法。

-一旦进入etc/nginx,命令行中输入sudo nano nginx.conf。(这将打开nginx.conf文件并启用编辑)

-在nginx.conf文件的server下面添加一行client_max_body_size 20M;(或者适合你的限制) 保存更改并退出文件(ctrl+s,ctrl+x)

-前往与etc处于同一级别的sbin目录,并运行命令sudo nginx -s reload

现在再次检查,很可能你的问题已解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接