Fazendo upload do arquivo 1 MB no Django, o administrador dá 400 de resposta de solicitação incorreta

2

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.

    
por ayaz 18.03.2011 / 11:57

1 resposta

1

Eu mesmo vou responder isso porque o problema foi resolvido. Muito obrigado aos Redmumba e Graham Dumpleton por seus comentários.

O problema certamente não foi com o Django (como já havíamos estabelecido). No entanto, acabou por não ser com o Apache. O problema era com o firewall no sistema que os administradores do sistema haviam esquecido completamente (suspiro). Aparentemente, o firewall tinha um limite de tamanho de arquivo de 1MB imposto.

    
por 23.03.2011 / 22:12