Hospedei um arquivo JavaScript em meu servidor executando Wordpress no Nginx. Removi o arquivo, mas ainda há várias solicitações de vários referenciadores. Esses referenciadores vêm de diferentes URLs e endereços IP.
Há MUITAS solicitações e quero bloqueá-las porque isso parece afetar o desempenho do meu servidor.
Existe uma maneira de bloquear essas solicitações?
Responder1
Imagino que você obterá um ganho de desempenho ao configurar o nginx explicitamente que a localização do javascript antigo não é mais válida, pois o nginx não precisará mais verificar o sistema de arquivos e quando você enviar um erro 410 ele não precisará mais para enviar a página de erro 404:
location /path/to/script.js {
return 410 ;
}
Código de status HTTP 410: Desaparecido
O recurso solicitado não está mais disponível no servidor e nenhum endereço de encaminhamento é conhecido. Espera-se que esta condição seja considerada permanente. Clientes com recursos de edição de links DEVEM excluir referências ao Request-URI após a aprovação do usuário. Se o servidor não souber ou não tiver recursos para determinar se a condição é permanente ou não, o código de status 404 (Não encontrado) DEVE ser usado. Esta resposta pode ser armazenada em cache, a menos que indicado de outra forma.
A resposta 410 tem como objetivo principal auxiliar na tarefa de manutenção da web, notificando o destinatário de que o recurso está intencionalmente indisponível e que os proprietários do servidor desejam que os links remotos para esse recurso sejam removidos. Tal evento é comum para serviços promocionais por tempo limitado e para recursos pertencentes a indivíduos que não trabalham mais no site do servidor. Não é necessário marcar todos os recursos permanentemente indisponíveis como “desaparecidos” ou manter a marca por qualquer período de tempo – isso fica a critério do proprietário do servidor.
Responder2
location = /deleted.js {
default_type text/plain;
return 410 "410";
#access_log off;
}
Você pode querer desabilitar o log de acesso como acima ou, se estiver executando um nginx novo o suficiente, configuraraccess_log
para fazer buffer. O acesso ao disco geralmente é muito caro e é provavelmente o que está atrasando você.
Aliás, usar return
automaticamente implica log_not_found off;
, então já é melhor do que simplesmente deixar para o vfs gerar o 404.
Responder3
Esta é uma ideia usando o módulo string do iptable para verificar o conteúdo do cabeçalho http, claro que deve ser adaptado ao seu caso especial:http://spamcleaner.org/en/misc/w00tw00t.html
No entanto, não tenho muita certeza sobre o que seria mais rápido entre inspecionar todos os pacotes recebidos e fazer com que seu servidor web os processe. Eventualmente, eu apenas adicionaria uma linha na configuração do servidor para retornar imediatamente um 404 naquele URL específico; o tráfego diminuirá com o tempo, à medida que os webmasters e os mecanismos de pesquisa corrigem seus links (e irão, já que erros 404 causariam um mau posicionamento nos mecanismos de pesquisa modernos).