2016-05-17 71 views
0

我知道這已被問過幾次,但我不能讓它在我的配置工作。嘗試上傳比默認nginx值client_max_body_size大1MB的文件時,出現413錯誤。nginx client_max_body_size沒有作用?

這是我的CONFIGS:

nginx.conf:

http { 
    client_max_body_size 500M; 
    limit_req_status 429; 
    limit_conn_status 429; 
    limit_req_zone $binary_remote_addr zone=worktoday:40m rate=10r/s; 

    sendfile on; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_timeout 65; 
    types_hash_max_size 2048; 

    include /etc/nginx/mime.types; 
    default_type application/octet-stream; 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    gzip on; 
    gzip_disable "msie6"; 

    include /etc/nginx/conf.d/*.conf; 
    include /etc/nginx/sites-enabled/*; 
} 

mysite.com:

server { 
     client_max_body_size 500M; 
     listen 80; 

     location/{ 
      client_max_body_size 500M; 

      proxy_pass http://backend; 

      proxy_set_header Host $host; 

     } 

    } 

    upstream backend { 
     client_max_body_size 500M; 
     least_conn; 

     server 172.16.10.10; 
     server 172.16.10.12; 
    } 

我嘗試了所有組合,將client_max_body_size在所有地方(就像現在),僅在一些情況下,將其設置爲0(禁用任何限制)等。

我是des解決這個問題。

nginx後面有一個燒瓶應用程序運行gunicorn。我已經嘗試過應用程序(前面沒有nginx),它的工作原理。

我真的很感謝這裏的任何幫助,謝謝。

+0

Nginx版本?上傳失敗需要多長時間?檢查\t'send_timeout'? –

+0

幾乎立即失敗。我已經嘗試過設置'send_timeout',但它沒有區別。 – AArias

回答

2

好吧,所以昨天當我問這個問題時,我被徹底燒燬了,我忘記了我們的部署配置。

我們的主服務器充當負載均衡器,後面我們有另外兩臺服務器,它們也有nginx。我忘記了這兩個nginx的存在,那些拒絕這些請求的人。

設置client_max_body_size這兩個終於解決了我的問題。

提示:有時候最好是去睡覺,回來新鮮,以解決您的問題。