2008-10-16 6 views
10

Wird htaccess langsamer weitergeleitet/belastet Apache mehr als Redirects in Konfigurationsdateien? Wie groß können eine Reihe von Weiterleitungen in htaccess sein, bevor sie anfangen, die Leistung zu verringern?.htaccess Redirect-Leistung

Antwort

13

Ja, es verlangsamt den Server, da er jedes Mal auf die Datei zugreifen muss, wenn auf eine Ressource in diesem Verzeichnis oder einem Unterverzeichnis zugegriffen wird.

Die Anzahl der Weiterleitungen ist nicht relevant, da der Hauptleistungstreffer der Dateizugriff selbst ist. Dies innerhalb angemessener Grenzen (dh eine 5 Kb Htaccess-Datei wird mehr oder weniger die gleiche Zeit zu analysieren als eine 1 Kb, andere Geschichte ist ein 1 Mb htaccess, obwohl ich nie diese Monstrosität gesehen habe und hoffe, ich werde nie)

1

Die Verwendung einer .htaccess-Datei ist langsamer als die Verwendung einer Konfigurationsdatei - eine .htaccess-Datei wird analysiert, wenn eine Anfrage an ein betroffenes Verzeichnis gesendet wird - dies ermöglicht das Ändern der Datei ohne Neustart des Servers. Da eine Konfigurationsdatei beim Serverstart nur einmal analysiert wird, ist sie schneller.

Die Anzahl der Direktiven, die Sie in einer .htaccess-Datei ohne signifikante Auswirkungen auf die Leistung haben können, basiert auf der Komplexität der Regeln und den Besonderheiten Ihres Servers, obwohl die Hauptleistung die Verwendung der .htaccess-Datei ist.

+0

das heißt, nginx wird besser funktionieren – DragonFire

8

Obwohl es wahr ist, dass der .htaccess bei jeder Anfrage geparst wird und somit technisch langsamer ist als die Regeln in der Hauptkonfigurationsdatei zu speichern, spielt es in Wirklichkeit keine Rolle. Die Apache-Konfigurations-Engine ist ein optimierter C-Code, der in den Webserver eingebettet ist. Sofern Sie nur kleine statische Dateien ohne Datenbankzugriffe bereitstellen, ist der zusätzliche Aufwand für .htaccess und Weiterleitungen vernachlässigbar.

Moderne Prozessoren sind so schnell, dass Sie wirklich eine riesige Menge an Verkehr machen müssen, um sich darüber Gedanken zu machen. Wenn Sie so viel Verkehr machen und es sich dabei um statischen Inhalt handelt, kaufen Sie sich einen zweiten Server, um die Last zu teilen.

+0

Sie würden also nur eine zweite Maschine kaufen, die Sie selbst hätten retten können, indem Sie .htaccess-Dateien vermeiden? Es ist nicht unbedingt ein einzelner Dateizugriff. –

+0

Auch wenn es sich um mehrere Zugriffe handelt, ist die Menge an Datenverkehr, die Sie dafür benötigen, enorm. Mach einen Datenbanktreffer und es hört auch auf. An diesem Punkt ist Ihre Bandbreite Rechnung so hoch, die Kosten für einen zusätzlichen Server ist vernachlässigbar. Ihre Millionen von Kunden werden die Redundanz zu schätzen wissen. – bmdhacks

+4

Nur für ein wenig Hintergrund, war ich der Betreuer von Apache für mp3.com während des .com Booms. Wir haben fast ein Gigabit an Bandbreite gepusht und ab 1999 auf Computern mit Pentium II ausgiebig mod_rewrite verwendet. Ich habe Code zu Apache beigetragen, der sich in mod_rewrite befindet. Redirects waren nie ein Problem. – bmdhacks