Erro Apache - Nome do arquivo muito longo: Não é possível mapear GET

4

Eu tenho o aplicativo PHP Laravel instalado no meu CentOS VPS. É back-end para meu aplicativo para dispositivos móveis que foi atualizado recentemente. Infelizmente eu escrevi um código ruim que resulta em fazer uma solicitação que é uma concatenação de centenas, talvez milhares de palavras.

Meu servidor apache está desativado com muita frequência (no mínimo 1 por hora) e eu tenho que executar: service httpd restart.

Como eu vejo no error.log, há muitas dessas entradas:

(36)File name too long: Cannot map GET /adminpanel/public/api/v2/categoriese=c3Jr...    

Dez dessas solicitações por segundo e o apache estão inativos.

Publiquei uma atualização nas lojas de aplicativos, mas alguns usuários ainda têm versões antigas. Existe a possibilidade de bloquear essas solicitações antes que elas sejam processadas?

    
por Adam Śliwakowski 31.01.2015 / 08:43

2 respostas

1

O Apache possui um limite padrão de 8190 para a Diretiva LimitRequestLine , que regula comprimento máximo da solicitação HTTP GET. Como mencionado, veja se alterar este parâmetro faz o seu trabalho.

Em relação ao apache ser interrompido a cada hora ou mais frequentemente: eu ficaria surpreso que isso esteja relacionado a rejeitar uma solicitação GET muito longa. O Apache é cuidadosamente elaborado para eliminar solicitações irregulares com o mínimo de esforço, precisamente para evitar a negação de serviço e o esgotamento de recursos.

A partir do que você postou, isso pode estar relacionado ao tipo de MPMs (Módulos de Multiprocessamento) que você está usando, relação de processos mínimos / máximos bifurcados e recursos disponíveis do sistema e, é claro, poder de processamento de sua solicitação bem-sucedida. usando no back-end (PHP).

    
por 30.04.2017 / 10:38
0

Como solução temporária, você pode definir o LimitRequestLine para algo longo.

    
por 11.02.2015 / 16:54