2016-09-15 122 views
4

当我设置client_max_body_size 30m;没有ssl时,一切正常(文件最多可接受30MB)。但是当我切换到ssl时,它完全忽略了这个指令。nginx - client_max_body_size对配置的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; 
    } 
} 

我发现了几个建议,这里nginx - client_max_body_size has no effect但是毫无效果。我试图使用不同的nginx版本,我为所有块设置client_max_body_size:http,服务器,位置,但没有任何工作。

我也搜索过它是否是一个没有结果的nginx错误。

是否有任何解决方案,我可以克服这个问题,或者我不得不使用非ssl连接?欢迎任何建议。

我的配置是:

  • AWS EC2实例纳米
  • Nginx的在泊坞窗(最新的稳定 - 1.10.1)
  • 只有一个单一的IP地址

差异虚拟主机从这个问题nginx - client_max_body_size has no effect:这个问题涉及到ssl

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

回答

0

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

因此,错误配置位于AWS Elastic Beanstalk的一侧。配置AWS解决了问题。