nginx - underscores_in_headers - Soltar conexiones no deseadas
request_filename nginx (3)
Quiero bloquear los Bots no deseados para que no accedan a los sitios en el servidor.
¿Puede nginx abandonar / matar la conexión de inmediato cuando se detecta un determinado Bot?
if ($http_user_agent ~ (agent1|agent2) ) {
**KILL CONNECTION**;
}
Algo como el ejemplo de arriba.
Sí puede. Vea la pregunta a continuación: esto redirige en función de una cadena de agente, pero realmente puede hacer lo que quiera (página de error o lo que sea).
Proxy Nginx o reescritura dependiendo del agente de usuario
Sin embargo, tenga en cuenta que un bot decente falsificará su cadena de usuario-agente para que se vea como un navegador normal, por lo que esta no es de ninguna manera una forma sólida de disuadir a los bots de barrer su sitio.
Utilice la devolución 444; Este código de estado no estándar de 444 hace que nginx simplemente cierre la conexión sin responder a ella .
if ($http_user_agent ~ (agent1|agent2) ) {
return 444;
}
server {
listen 8443 default ssl;
error_page 404 403 = 444; #disconnect if 404 or 403
root /srv/empty; #Empty forder
...
...
location /summary_report{
root /srv/www;
index index.html index.htm;
}
}
https://127.0.0.1/ Desconectar.
https://127.0.0.1/summary_report No se desconecta.