Problem:
Wenn ein DDOS-Angriff oder eine Flut von Anfragen gleichzeitig auf meinem Apache2-Webserver eintrifft, kann der gesamte Server über genügend RAM verfügen und abstürzen.
Mögliche Lösung:
Begrenzen Sie die Anzahl gleichzeitiger Verbindungen zu Ihrem Webserver pro VirtualHost
Methode: Eine einfache und effektive Methode, die direkt auf dem Apache-Webserver durchgeführt wird, ist die Verwendung der Module:mod_bw (mod_bandwidth) und mod_vhost_limit . Ich bevorzuge das mod_vhost_limit da es viel einfacher zu konfigurieren ist und sich nach meinen Tests als effektiver erwiesen hat.
Umwelt:
Kompatibel mit Apache 2.2 xx und Apache 2.4.xx.
Hinweis: Für Apache 2.4.xx muss vor dem Kompilieren des Moduls ein „Patching“ des ursprünglichen Quellcodes durchgeführt werden.
Schritte:
Installieren Sie die Tools der Build-Umgebung:apt-get install build-essential apache2-dev
Laden Sie die Modulquellen herunter und extrahieren Sie sie.wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz
NUR FÜR Apache 2.4.xx
Beziehen des Patches und Patchen der Originalquelle.
Ref:https://github.com/pld-linux/apache-mod_vhost_limitwget https://github.com/pld-linux/apache-mod_vhost_limit/archive/master.zip
unzip master.zip
cp apache-mod_vhost_limit-master/* mod_vhost_limit-0.2/
cd mod_vhost_limit-0.2/
patch mod_vhost_limit.c < mod_vhost_limit-apache24.patch
cd ..
FÜR Apache 2.2..xx UND Apache 2.4.xx
Kompilieren, installieren und aktivieren Sie das Modul:cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart
Verwenden Sie das Modul in einer VirtualHost-Konfiguration: <VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>