Uploads de arquivos e client_max_body_size em nginx + gunicorn + django

1

Eu preciso configurar o nginx + gunicorn para poder fazer upload de arquivos maiores que o tamanho máximo padrão nos dois servidores.

Meu arquivo nginx .conf se parece com isto:

server {
    # ...

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect   off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme  $scheme;
        proxy_connect_timeout 60;
        proxy_pass http://localhost:8000/;
    }
}

A ideia é permitir solicitações de 20M para dois locais:

  • /admin/path/to/upload?param=value
  • /installer/other/path/to/upload?param=value

Eu tentei adicionar location diretivas no mesmo nível que eu colei aqui (recebendo erros 404) e também tentei adicioná-las dentro da diretiva location / (recebendo 413 Entity Too Large errors).

As minhas diretrizes de localização parecem-se com estas na sua forma mais simples:

location /admin/path/to/upload/ {
    client_max_body_size 20M;
}
location /installer/other/path/to/upload/ {
    client_max_body_size 20M;
}

Mas eles não funcionam (na verdade testei muitas combinações e estou desesperado pensando nisso.

Por favor, ajude Se você puder: Quais configurações eu preciso definir para que isso funcione?

Muito obrigado!

    
por carlosescri 11.06.2013 / 14:08

2 respostas

2

Isso finalmente funcionou fazendo algo assim:

location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect   off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme  $scheme;
    proxy_set_header X-Forwarded-Protocol ssl;
    proxy_connect_timeout 120;
    proxy_pass http://localhost:8000/;

    location /admin/path/to/upload {
        client_max_body_size 50m;
        proxy_pass http://localhost:8000/admin/path/to/upload;
    }
}
    
por 09.06.2014 / 10:29
0

Parece que estava quase funcionando quando você tinha o client_max_body_size nos locais não raiz. Você também configurou dav_methods PUT; em seu nginx conf para ativar as solicitações PUT e DELETE?

    
por 11.06.2013 / 15:19