Linux

Geschwindigkeitsprobleme beim Apache Webserver bei der Verwendung der Allow/Deny-Direktive lösen

Pinterest LinkedIn Tumblr

Ich musste auf unserem Apache Webserver eine Testdomäne einrichten, die nur für bestimmte IP-Adressen erreichbar sein sollte. Hierzu habe ich in der neuen Virtualhost-Datei in der obersten Directory Direktive folgende Einträge hinzugefügt:

<Directory /verzeichnis/der/website>

….

Order Deny,Allow

Deny from all

Allow from localhost xxx.xxx.xxx.xx1 xxx.xxx.xxx.xx2 xxx.xxx.xxx.xx3

</Directory>

Hiermit ist der Zugriff auf die 3 angegebenen IP-Adressen beschränkt. Einige Wochen später wurde die Seite sehr langsam, was ich mir anfangs nicht erklären konnte. Nach langer Suche habe ich das Problem festgestellt. Laut Dokumentation wird bei der Allow/Deny-Direktive ein doppelter DNS-Lookup durchgeführt[2], zumindest dann, wenn in der Allow/Deny-Direktive Hostnamen verwendet werden. Es war bei mir dennoch langsam, obwohl ich nur IP-Adressen verwendet habe.

Als die Zugriffszahl größer wurde, stieg somit auch die Anzahl der Anfragen an den DNS-Server, welche von diesem nur verzögert beantwortet wurden. Ich vermute, dass der verwendete DNS-Server ein Problem hatte, oder ein Limit für Abfragen definiert wurde.

Abhilfe schaffte die Umstellung auf einen schnelleren DNS-Server, in meinem Fall habe ich am Webserver den DNS-Server von Google(8.8.8.8) in die /etc/resolv.conf eingetragen.

Eine weitere Möglichkeit wäre, am Webserver einen lokalen DNS-Caching-Server (z.B.: dnsmasq) zu installieren, welcher häufige Anfragen zwischenspeichert.

Gerald

 

[1]http://httpd.apache.org/docs/2.2/howto/access.html

[2]http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html

Write A Comment