nginx - client_max_body_size 对配置的 ssl 没有影响

kuc*_*ram 6 ssl nginx amazon-ec2

当我设置client_max_body_size 30m;没有 ssl 时,一切正常(接受最大 30MB 的文件)。然而,当我切换到 ssl 时,它完全忽略了这个指令。

我的配置如下所示(/etx/nginx/conf.d/my-sites.com.conf):

server {
  listen 443 ssl;
  server_name my-sites.com;
  ssl_certificate /etc/nginx/ssl/my-sites.com/uni_my-sites.com.crt;
  ssl_certificate_key /etc/nginx/ssl/my-sites.com/my-sites.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  client_max_body_size 30m;

  location / {
    proxy_pass http://my-backend.com;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }
}
Run Code Online (Sandbox Code Playgroud)

我在这里发现了几个建议nginx - client_max_body_size 没有效果,但没有任何效果。我尝试使用不同的 nginx 版本,我为所有块设置了 client_max_body_size:http、服务器、位置,但没有任何效果。

我还搜索了是否是 nginx bug,但没有结果。

有什么解决方案可以解决这个问题还是我被迫使用非 ssl 连接?欢迎任何建议。

我的配置是:

  • AWS EC2 纳米实例
  • docker 中的 Nginx(最新稳定 - 1.10.1)
  • 单个 IP 地址上只有一个虚拟主机

与此问题的区别nginx - client_max_body_size has noeffect:此问题与 ssl 有关

编辑: 我在 nginx wiki https://trac.nginx.org/nginx/ticket/1076#ticket中创建了一个问题

kuc*_*ram 1

我终于找到了这个问题的原因。Nginx 工作正常,但是我将请求路由到 AWS Elastic Beanstalk,AWS Elastic Beanstalk 在内部使用 nginx 将请求路由到 Docker 容器内部。

因此,错误配置是在 AWS Elastic Beanstalk 方面。配置AWS解决了这个问题。