Bots blokkeren
Hoe kun je bepaalde bots of andere partijen blokkeren via nginx.
Het komt maar al te vaak voor dat je website bestookt wordt met requests van een bot die niets te zoeken heeft op jouw website. Je kunt dit achterhalen via de access logs. Hieruit blijkt dan vaak een bepaalde IP / IP range, user agent of land verantwoordelijk is voor het bestoken van jouw website.
Je kunt deze dan blokkeren via de nginx configuratie. Vergeet niet dat je na het aanpassen van de Nginx configuratie het nginx-reload
commando moet gebruiken.
Ip / Ip range
Onderstaand een voorbeeld van het blokkeren van een IP adres/ IP range.
deny 1.2.3.4; # IP
deny 1.2.3.4/16; # IP range CIDR notatie
User agent
Het blokkeren van alle user agents waar BadUserAgent
in voor komt kan zo:
if ($http_user_agent ~* (BadUserAgent) ) {
return 403;
}
Land
Het blokkeren van een land gebeurt via de ISO 3166-1 alpha-2 code.
Bijvoorbeeld China:
if ($geoip_country_code = 'CN') {
return 403;
}
Of meerdere landen zoals China en HongKong
if ($geoip_country_code ~* '(CN|HK)') {
return 403;
}