Stellen Sie sicher, dass HostnameLookups Off
in Apache auf gesetzt ist.
Sie sagen, dass der Server Apache über ein WAMP-Setup (Windows-Äquivalent zu LAMP) ausführt, richtig? Nun, wenn das der Fall ist, öffne httpd.conf
oder apache2.conf
(alles hängt davon ab, wie es in deinem Setup installiert wurde; beide Dateien sind im Grunde genommen gleich) und suche eine Konfigurationszeile mit HostnameLookups
darin. Die Standardeinstellung HostnameLookups
lautet Off
wie im Kommentar erläutert und sollte sich direkt über der HostnameLookups
Einstellung in dieser Datei befinden. kühne Betonung liegt bei mir:
HostnameLookups: Protokollieren Sie die Namen der Clients oder nur deren IP-Adressen, z. B. www.apache.org (ein) oder 204.62.129.132 (aus). Die Standardeinstellung ist deaktiviert, da dies für das Netz insgesamt besser wäre, wenn die Benutzer diese Funktion wissentlich aktivieren müssten, da die Aktivierung bedeutet, dass jede Clientanforderung MINDESTENS eine Suchanforderung an den Nameserver ergibt.
Und die offizielle Apache-Dokumentation geht auch tiefer ins Detail. wieder kühne Betonung liegt bei mir:
Die Standardeinstellung ist "Aus", um den Netzwerkverkehr für diejenigen Sites zu speichern, für die die Reverse-Lookups nicht wirklich erforderlich sind. Dies ist auch für die Endbenutzer besser, da sie nicht die zusätzliche Latenz erleiden müssen, die eine Suche mit sich bringt. Bei stark ausgelasteten Sites sollte diese Anweisung deaktiviert bleiben, da DNS-Suchvorgänge viel Zeit in Anspruch nehmen können.
Verwenden Sie keine Hostnamen für Allow from
/ Deny from
Direktiven.
Haben Sie auch Verzeichnisse oder Direktiven, die Apache Basic Auth verwenden? Welchen einfachen Passwortschutz kann man in Apache einstellen? Ich erinnere mich, dass es in einigen Fällen zu Verzögerungen bei der Suche nach Hostnamen kam, die mit Allow from
Feldern wie z Allow from localhost
. Wenn Sie dies auskommentieren Allow from localhost
oder auf "" setzen Allow from 127.0.0.1 ::1
und Apache dann neu starten, wird dies behoben.
Wie in der offiziellen Apache - Dokumentation auch mit HostnameLookups
Set Off
mit voller Host - Namen in Allow from
/ Deny from
Richtlinien eine ganze Kette von DNS - Lookups auslösen , die nach unten Zugriff verlangsamen; kühne Betonung liegt bei mir:
Hosts, deren Namen mit dieser Zeichenfolge übereinstimmen oder auf dieser Zeichenfolge enden, ist der Zugriff gestattet. Es werden nur vollständige Komponenten abgeglichen, sodass das obige Beispiel mit foo.apache.org übereinstimmt, jedoch nicht mit fooapache.org. Diese Konfiguration veranlasst Apache, unabhängig von der Einstellung der HostnameLookups-Direktive eine doppelte Reverse-DNS-Suche für die Client-IP-Adresse durchzuführen. Es wird ein Reverse-DNS-Lookup für die IP-Adresse durchgeführt, um den zugehörigen Hostnamen zu ermitteln. Anschließend wird ein Forward-Lookup für den Hostnamen durchgeführt, um sicherzustellen, dass er mit der ursprünglichen IP-Adresse übereinstimmt. Nur wenn Forward- und Reverse-DNS konsistent sind und die Hostnamen übereinstimmen, wird der Zugriff zugelassen.
In diesem Blog-Beitrag wird es auch gut erklärt, wenn Sie mehr darüber erfahren möchten, wie Allow from
/ Deny from
Einträge mit einem Hostnamen - anstelle einer unformatierten IP-Adresse - den Apache-Zugriff aufgrund mehrerer DNS-Lookups verlangsamen können:
Vor kurzem bin ich jedoch auf eine Situation gestoßen, in der wir versehentlich das Gleiche getan haben, ohne HostnameLookups explizit zu aktivieren. Wie? Durch Einschränkung des Zugriffs basierend auf dem Remote-Hostnamen! Lesen Sie die Dokumentation zur Allow-Direktive im Abschnitt "A (partial) domain-name":
Diese Konfiguration veranlasst Apache, unabhängig von der Einstellung der HostnameLookups-Direktive eine doppelte Reverse-DNS-Suche für die Client-IP-Adresse durchzuführen. Es wird ein Reverse-DNS-Lookup für die IP-Adresse durchgeführt, um den zugehörigen Hostnamen zu ermitteln. Anschließend wird ein Forward-Lookup für den Hostnamen durchgeführt, um sicherzustellen, dass er mit der ursprünglichen IP-Adresse übereinstimmt. Nur wenn Forward- und Reverse-DNS konsistent sind und die Hostnamen übereinstimmen, wird der Zugriff zugelassen. Dies macht durchaus Sinn, ist aber eine ziemlich große, wahrscheinlich unerwartete Nebenwirkung bei der Verwendung von:
Allow from .example.com
In unserem Fall war es ein noch weniger offensichtlicher Fall, der uns überhaupt nicht an Hostnamen denken ließ:
Allow from localhost
Hier wurde localhost geschrieben, um vielleicht etwas Aufwand zu sparen oder die Übersichtlichkeit zu erhöhen, anstatt 127.0.0.1 (IPv4) und :: 1 (IPv6) auszuschreiben. Mental ist es so einfach, "localhost" als direkten Alias für 127.0.0.1 und :: 1 anzuzeigen, dass wir vergessen können, dass der Name "localhost" nur eine Konvention ist und eine Suche wie jeder andere Name erfordert. Diejenigen, die mit der MySQL-Datenbank vertraut sind, wissen möglicherweise, dass sie dem Wort "localhost" eine verwirrende Bedeutung zuweist, um eine UNIX-Socket-Verbindung anstelle einer TCP-Verbindung zu 127.0.0.1 oder einem beliebigen auf dem System definierten "localhost" herzustellen!
Möglicherweise denken Sie auch, dass das Nachschlagen von 127.0.0.1 schnell ist, da dies normalerweise "localhost" in / etc / hosts zugeordnet ist. Richtig, aber jeder andere Besucher, der sich nicht in / etc / hosts befindet, erhält stattdessen die langsame DNS-PTR-Suche! Und je nach Betriebssystem sehen Sie möglicherweise "ip6-localhost" oder "ip6-loopback" (Debian 7, Ubuntu 12.04), "localhost6" (RHEL 5/6, Fedora 19) in / etc / hosts oder etwas anderem . Deshalb ist es wichtig, die Adressen zu buchstabieren:
Allow from 127.0.0.1
Allow from ::1
Dadurch wird das implizite Verhalten von HostnameLookups sofort beendet und die Website beschleunigt. In diesem Fall war dies kein Problem, da es sich um eine private, interne Website handelte, die von niemandem besucht werden konnte, der zuvor keine Firewall durchlaufen hatte, sodass das Verkehrsaufkommen relativ gering war. Diese Zugangskontrolle ist Teil dessen, warum localhost überhaupt zugelassen werden musste. In einem öffentlichen Produktionssystem wäre dies jedoch aufgrund der Verlangsamung des Verkehrsaufkommens sehr schlecht gewesen.