Solução de problemas intermitentes de erros de solicitação incorreta do Apache 400

2

Estou tentando depurar um problema no meu aplicativo e procurando sugestões ou dicas para solução de problemas.

Meu aplicativo consiste em um aplicativo para dispositivos móveis que envia dados via HTTPS para o apache (que está usando mod_proxy para encaminhar para um servidor django). No entanto, adicionei o logging na camada do django e parece indicar que o 400 está vindo diretamente do Apache e não sendo encaminhado de forma alguma.

Isso também acontece apenas para um subconjunto muito pequeno de POSTs. Devido à infreqüência do problema e ao fato de que ele vem de telefones que eu não tenho acesso a ele, foi difícil reproduzir e depurar.

Que tipos de coisas devo analisar para resolver este problema? Eu encontrei este post mas eu já estou Apache 2.2.22, de modo que não parece ser o problema.

Devido ao volume de solicitações, hesito em adicionar log completo a todas as solicitações (embora talvez eu possa fazer algum log condicional?).

Procurando sugestões sobre:

  • Qual poderia ser o problema da raiz. Por exemplo. que tipos de problemas introduzem 400s intermitentes como este
  • Como obter mais informações no servidor para ajudar no diagnóstico, pois não consigo acessar os dados do cliente.
por Cory 12.03.2014 / 16:58

1 resposta

3

Do RFC2616, um 400 é um Pedido Ruim :

The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications.

Portanto, há algo na solicitação que está causando o 400. Coisas que você pode experimentar:

  • examine seus registros de erros do apache; você também pode aumentar o nível de log de warn (padrão) para debug e examine os logs de erros
  • examine o tcpdump de tal solicitação (muitos tutoriais estão disponíveis na web) - essa pode ser sua melhor opção para encontrar a causa raiz.

Aqui está uma postagem do blog na resolução de problemas 400 erros no IIS que também podem ser úteis.

    
por 12.03.2014 / 18:59