NGINX wird gegenüber dem Apache HTTP Server ein enormer Geschwindigkeitsvorteil bei der Auslieferung von statischen Webinhalten nachgesagt. Dieser ist u. a. auf Unterschiede bei der Konfiguration zurückzuführen.
Der Apache-Webserver bietet Administratoren neben der Hauptkonfigurationsdatei httpd.conf die Möglichkeit einer Verwaltung auf Verzeichnisebene. Dazu kommen sogenannte .htaccess-Dateien zum Einsatz. Diese dezentralen Konfigurationsdateien lassen sich prinzipiell in jedem beliebigen Server-Verzeichnis implementieren. Anweisungen, die in einer .htaccess definiert wurden, beziehen sich sowohl auf das Verzeichnis, das die Konfigurationsdatei enthält, als auch auf dessen Unterverzeichnisse. In der Praxis kommen .htaccess-Dateien zum Einsatz, um den Verzeichniszugriff auf bestimmte Nutzerkreise zu beschränken, einen Passwortschutz einzurichten sowie Regelungen für das Verzeichnis-Browsing, Fehlermeldungen, Weiterleitungen oder alternative Inhalte zu definieren.
Zu beachten ist, dass sich all dies auch zentral in der httpd.conf-Dateikonfigurieren ließe.Relevant wird die .htaccess jedoch bei Webhosting-Modellen wie dem Shared Hosting, bei dem der Zugriff auf die Hauptkonfigurationsdatei dem Hosting-Dienstleister vorbehalten ist. Die dezentrale Konfiguration via .htaccess ermöglicht es, Nutzern die Administration für bestimmte Bereiche des Server-Dateisystems – beispielsweise für ausgewählte Projektverzeichnisse – zu erlauben, ohne ihnen Zugriff auf die Hauptkonfiguration zu gewähren. Außerdem treten Änderungen sofort und ohne Neustart in Kraft.
NGINX hingegen bietet lediglich zentrale Konfigurationsmöglichkeiten. Sämtliche Anweisungen werden in der Datei nginx.conf definiert. Mit dem Zugriff auf diese Datei erhält ein Nutzer die Kontrolle über den gesamten Server. Anders als bei Apache lässt sich der administrative Zugang somit nicht auf ausgewählte Verzeichnisse beschränken. Dies hat sowohl Vor- als auch Nachteile. Die zentrale Konfiguration von NGINX ist weniger flexibel als das Konzept des Apache HTTP Servers, bietet jedoch einen deutlichen Sicherheitsvorteil: Änderungen an der Konfiguration des Webservers können nur von Nutzern vorgenommen werden, die über Root-Rechte verfügen.
Wichtiger jedoch als das Sicherheitsargument ist der Performance-Nachteil einer dezentralen Konfiguration via .htaccess. Bereits in der Dokumentation des Apache HTTP Servers empfehlen die Entwickler, auf den Gebrauch der .htaccess zu verzichten, sofern ein Zugriff die httpd.conf möglich ist. Grund dafür ist die Prozedur, in der Apache Konfigurationsdateien einliest und interpretiert.
Wie bereits angesprochen folgt Apache standardmäßig einem dateibasierten Schema, um Clientanfragen zu beantworten. Da die Apache-Architektur eine dezentrale Konfiguration ermöglicht, durchsucht der Webserver auf dem Weg zur angefragten Ressource jedes Verzeichnis entlang des Dateipfades nach einer .htaccess-Datei. Alle Konfigurationsdateien, die er dabei passiert, werden eingelesen und interpretiert – ein Schema, das den Webserver deutlich ausbremst.