2016-09-15 95 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解決了問題。