Eu tenho um pequeno projeto Django (1.2.x) implementado no Apache (2.x) via mod_wsgi (3.x). No admin, se eu fizer o upload de um arquivo < 1MB, eu posso passar por isso; no entanto, para um arquivo de, digamos, 1,2 MB de tamanho, recebo uma resposta 400 do servidor com " Erro 400 " somente no corpo. Eu estou querendo saber porque isto está acontecendo. Tanto quanto eu posso ver, não há LimitRequestBody
definido na configuração do Apache. Tentei fazer o upload com vários navegadores, incluindo: Firefox, Chrome e Safari.
No arquivo de log do Apache, aparentemente não há entrada para solicitações que deram a resposta de erro 400. Isso é estranho.
Devo salientar que o cenário em que isso está acontecendo é: O projeto em questão é implantado em dois servidores Apache idênticos (configuração totalmente idêntica) que estão por trás de um balanceador de carga . Na minha configuração de desenvolvimento, é claro, o problema não aparece.
Qualquer ajuda com isso será muito apreciada.
UPDATE : Descobri que a seguinte mensagem de erro é registrada no log do balanceador de carga: Bad request headers : Content-length exceeds post body limit
. A outra parte interessante é que, se o arquivo > 1 MB é carregado via HTTPS, passa bem. No entanto, quando é carregado via HTTP, dá o erro 400.
UPDATE # 2 : Eu decidi escrever um programa simples de upload de arquivos usando simplesmente Python e web.py. Eu consegui que fosse implantado no servidor de produção sob as mesmas configurações de host virtual, em mod_wsgi
. Os uploads de arquivos funcionaram quando o aplicativo foi veiculado por SSL. Mas eles deram o Error 400
quando eles foram servidos por não-SSL. Então, estou ainda mais perplexo do que antes.