Beschleunigung von Webanwendungen mit nginx

"Zeit ist Geld" - diese Weisheit gilt in unserer schnelllebigen Welt mehr denn je. Auch für Internetnutzer ist die Geschwindigkeit ein sehr wichtiges Kriterium. Dies untermauern aktuelle Forschungsergebnisse im Netz. So hat schon eine Verzögerung von einer Sekunde beim Laden einer Seite zur Folge, daß etwa elf Prozent weniger Seiten aufgerufen werden. Sieben Prozent brechen sogar den Besuch komplett ab. Die Folge ist klar. Besucher sind mit dem Internetauftritt unzufrieden und vermeiden es, ihre wertvolle Zeit zu opfern. Sollen gar Produkte verkauft werden, verursacht ein zögerliches Laden der Seiten massive Umsatzeinbußen.

Die moderne Webserver-Software nginx ist die ideale Lösung, wenn es um die Geschwindigkeit einer Webseite geht. Nicht umsonst basieren mittlerweile mehr als 40 Prozent der meistbesuchten Webauftritte weltweit auf nginx. Die Software nutzt die Möglichkeiten moderner Betriebssysteme wie Linux optimal und skaliert dank modularer Architektur sehr gut. Selbst 10.000 gleichzeitige Besucher und mehr stellen für den Webserver kein Problem dar. Verglichen mit herkömmlichen Lösungen kann oft das Zehnfache und teilweise sogar das Hundert- bis Tausendfache an Requests mit einem einzelnen Server bedient werden.

Zudem ist es möglich, mit einfachen Konfigurationseinstellungen die Performance und Anwendungsgeschwindigkeit weiter zu steigern. Hier exemplarisch drei Optimierungsmöglichkeiten:

- Mit Hilfe des Cachings von statischen Files wie CSS, Bilder und Javascripte im Browser des Users sowie dem Ausschalten des Loggings für statischen Files werden erhebliche Perfomanceverbesserungen erreicht. Zusätzliche erhöht das Caching von nicht-statischem Content die Leistung für CMS-Webseiten wie zum Beispiel WordPress. Die Optionen für den Cache sind einzeln einstellbar und ermöglichen das flexible Festlegen, welche Requests über den Cache bedient werden sollen.

Beispiel:

location ~* \.(ico|js|css|png|gif|jpe?g)$ {
  expires 7d;
  access_log off;
}

- Weiteres Potential zur Perfomanceverbesserung bietet die Erhöhung des Timeouts der Keep Alives. Dadurch, daß 10.000 Verbindungen mit 2,5 Megabyte Speicher bedient werden können, lässt sich der Timeout problemlos erhöhen, ohne daß der Speicher knapp wird. Der Server kann deshalb sehr viele, schnelle Keep Alive Verbindungen gleichzeitig halten.

Beispiel:

keepalive_timeout 65;

- Auch die Kompression von Dateien erhöht die Ladegeschwindigkeit der Seiten. Mit Hilfe der GZIP Kompression lassen sich übertragene Daten wie zum Beispiel Style Sheets um bis zu 70 Prozent verkleinern. Dies spart erhebliche Bandbreite und verringert die Zeit, um den User zu erreichen. nginx ermöglicht es, GZIP individuell zu konfigurieren.

Beispiel:

server {
  gzip on;
  gzip_comp_level 1;
  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
  ...
}

Nach oben