Ich zeige euch hier wie ich Zentral für alle vhosts „Bad bots“ aussperre. Dies Liste kann dann zentral gesteuert bzw. gepflegt werden und man muss dann nicht jedes WEB (vhost) einzeln anpassen. Wenn man bei Plesk dann ein Abonnement erstellt, wird gleich der passende Eintrag unter „Hosting und DNS > Einstellung für Apache & nginx > Zusätzliche nginx-Anweisungen“ mit hinzugefügt.
Ordner und Dateien erstellen:
mkdir /etc/nginx/badbots
touch /etc/nginx/badbots/badbots.conf
touch /etc/nginx/badbots/addvhost_badbots.txt
echo -e "\ninclude /etc/nginx/badbots/badbots.conf;" > /etc/nginx/badbots/addvhost_badbots.txt
Die Zentrale Datei erstellen mit den Bots die ihr aussperren wollt:
nano /etc/nginx/badbots/badbots.conf
if ($http_user_agent ~ "AhrefsBot|Uptimebot|Cliqzbot|Wget|Catall Spider|AcoiRobot|sogou spider|SEOkicks|SEOkicks-Robot|SemrushBot") {
return 403;
}
Skript für das einmalige setzen des Eintrages der bestehenden vhosts (Abonnements) :
nano /etc/nginx/badbots/addvhosts.sh
#!/bin/bash
plesk db -Ne "select domains.name from domains;" > domains.txt
while read i
do
cat /etc/nginx/badbots/addvhost_badbots.txt >> /var/www/vhosts/system/$i/conf/vhost_nginx.conf
done < domains.txt
systemctl restart nginx.service
danach noch die Berechtigung anpassen:
chmod a+x /etc/nginx/badbots/addvhosts.sh
und das Skript !EINMAL! auführen: sh /etc/nginx/badbots/addvhosts.sh
Skript für das erstellen von WEBs (Abonnements), nach der Erstellung soll Plesk das u.g. Skript ausführen und den Eintrag hinzufügen:
nano /usr/local/sbin/web_create_post.sh
#!/bin/bash
cat /etc/nginx/badbots/addvhost_badbots.txt >> /var/www/vhosts/system/${NEW_DOMAIN_NAME}/conf/vhost_nginx.conf
EOF
danach noch die Berechtigung anpassen:
chmod a+x /usr/local/sbin/web_create_post.sh
Bei Plesk den entsprechend Task erstellen:
In den Admin Bereich von Plesk einloggen > Serververwaltung > Tools & Einstellungen > Tools & Ressourcen > Ereignis-Manager > + Ereigniss-Handler hinzufügen:
Ereignis: Physiches Hosting erstellt
Priorität: 0
Benutzer: root
Befehl: /usr/local/sbin/web_create_post.sh
Ab jetzt wird jedesmal das Skript ausgeführt, wenn ein WEB erstellt wird. Das Skript setzt den entsprechenden NGINX Eintrag in die vhosts des WEBs (bei der Domain unter Hosting und DNS > Einstellungen für Apache & nginx einsehbar).
Was muss beachtet werden?
Ändert ihr die Datei „/etc/nginx/badbots/badbots.conf“ und fügt weitere Bots hinzu, müsst ihr danach einmal NGINX neustarten: systemctl restart nginx