Volker Dusch im Countdown zur IPC Spring 2013

Was macht Nginx so attraktiv? [Interview]
Kommentare

Im Juni wird ResearchGate-Entwickler Volker Dusch Gästen der IPC Spring 2013 zeigen, wie der HTTP-Server Nginx optimal konfiguriert wird. Doch was macht Nginx eigentlich so beliebt? Und was hält das Tool für die Zukunft bereit? Wir sprechen mit ihm im Vorfeld schon einmal über die brennendsten Fragen.

International PHP Conference

IPC13

In seiner Session „NGINX – The Web Server you might actually like“ wird Volker Dusch sein Wissen um den Webserver auf der International PHP Conference Spring Edition 2013 in Berlin teilen. Übrigens könnt Ihr noch bis zum 02. Mai vergünstigt zum Early Bird Tarif buchen und circa 500 Euro sparen.

PHP Magazin: Wird Nginx den Apache Server in Sachen Popularität eines Tages abhängen?

Dusch: Die letzten 15 Jahre war Apache ein solider und zuverlässiger Stützpfeiler des Internets und ich glaube nicht, dass sich das in nächster Zeit grundlegend ändern wird. Die letzten Zahlen von Netcraft zeigen das deutlich. Wenn man sich die Grafik der eine Million trafficstärksten Webseiten betrachtet, ist einfach zu erkennen, dass Nginx sich langsam aber sicher Marktanteile sichert, während Apache ein paar Prozentpunkte verliert. Alles in allem ist der Abstand aber so groß, dass ich es nicht für sinnvoll halte, da zu spekulieren. Wer weiß, ob wir in ein paar Jahren einen neuen Webserver sehen werden, oder wie sich die beiden Projekte weiterentwickeln werden?

Welcher Webserver mehr Bits zum Client schickt, ist auch nicht so wichtig. Schön ist, dass mit diesen beiden Projekten jetzt zwei stabile, sichere, quelloffene Projekte auf dem Markt sind, und bei der Wahl der für den Anwendungsfall besten Lösung eine weitere Option hinzukam.

PHP Magazin: Was hat sich in letzter Zeit bei Nginx getan? Welche Tendenz siehst du im bisherigen Changelog?

Dusch: Der deutlichste Eindruck, für mich, ist, dass sehr viel Wert auf eine stabile, zuverlässige Codebase gelegt wird. Nginx hat ein Entwicklungsmodell, das mit dem des Linux Kernels vergleichbar ist, in der Hinsicht, dass es einen „Stable“-Zweig (Version 1.2.x) und einen „Unstable“-Zweig (Version 1.3.x) gibt, die beide gewartet werden. Dieses Modell erlaubt es den Entwicklern, neue Features schnell aufzunehmen, und immer eine releasefähige Version des Webservers zu haben, in der diese ausprobiert werden können und Fehler gefunden werden, bevor der fehlerhafte Server in der breiten Masse installiert würde. Den aktuellen Entwicklungszweig gibt es seit zehn Monaten, und es wird sehr viel Wert auf Stabilität gelegt.

Aus Featuresicht ist die größte Entwicklung der native Support für das von Google entwickelte SPDY-Protokoll, das Chrome, Firefox 13 und Opera 12.10 unterstützen, und mit dem man nochmal ein paar Prozent schnellere Ladezeiten für die eigene Webseite bekommt, ohne irgendeinen Aufwand betreiben zu müssen.

Andere Weiterentwicklungen drehen sich um noch einfachere und intuitivere Konfiguration und IPv6 Support. Sehr spannend ist auch, dass Nginx als Proxyserver für WebSockets eingesetzt werden kann.

PHP Magazin: Was sollte der ideale HTTP-Server leisten?

Dusch: Ich glaube nicht dass es einen idealen HTTP(S)-Server für jeden Anwendungsfall geben kann. Ein guter Support aller relevanten Standards, offener Quellcode und eine aktive Community sind auf jeden Fall Grundlagen.

Er sollte schnell sein, einfach zu konfigurieren und verlässlich damit der operative Aufwand gering bleibt.

Das beste Feature des „idealen Webservers(tm)“ ist, dass er mir dabei hilft, meine Probleme zu lösen, und einem Projekt dabei hilft, erfolgreich zu werden und zu bleiben. Im Bestfall, ohne mich dabei nachts mit Nagios-Alarmen aufzuwecken.

PHP Magazin: Worin siehst du den größten Vorteil von Nginx gegenüber Apache Server? – Und vice versa?

Dusch: Apache ist und war für die letzten 15 Jahre das Rückgrat des Internets und eines der Projekte, das aus dem Ökosystem einfach nicht wegzudenken ist. Ich denke, dass kein anderer Webserver sich mit Apache in puncto Verlässlichkeit messen kann. Apache2 ist sehr gut verstanden, und für alle Probleme, auf die er stößt, gibt es schon eine Lösung irgendwo da draußen im Netz.

Als ich vor elf Jahren angefangen habe, in PHP zu programmieren, war XAMPP die simpelste Lösung, um „einfach loszulegen“. Ich musste nicht erst lernen wie man einen Webserver konfiguriert, oder wie man PHP installiert, und wie die beiden zusammenspielen. Doch spätestens an dem Punkt, wo man die erste Seite ins Netz stellt, die nicht auf dem Shared-Hosting-System lief, war es dann noch nötig, sich mit der Konfiguration eines Webservers auseinanderzusetzen. Heute gibt es viele PaaS und SaaS Lösungen, die einem das abnehmen. Aber damals war das Angebot noch anders, und so habe ich gelernt, mit etwas größeren Apache Installationen zu arbeiten.

Eines Tages wurde ich dann auf Nginx aufmerksam, und mein erster Eindruck war: „Ist das einfach. Die wissen ja genau, was ich machen will!“. Für mich ist das auch der größte Vorteil, den ich als Entwickler mit Nginx habe. Ich muss mich nicht in komplexe Konfigurationsoptionen einlesen und komplizierte Rewrite Rules lernen, um mein kleines Projekt an den Start zu bekommen.

Die Konfiguration von Nginx fühlt sich für mich so an, als hätten die Entwickler die Konfigurationsoptionen so gestaltet, dass ich für jedes konkrete Problem, beziehungsweise jeden UseCase, eine konkrete Lösung an die Hand bekomme, die einfach umzusetzen ist.

Dazu kommt das die Kombination aus Nginx und PHP-FastCGI-Process-Manager mir deutlich mehr Optionen eröffnet als Apache + mod_php. Mit dem FastCGI-Process-Manager ist es extrem einfach, einen Pool von ‚Worker‘ Prozessen zu starten, die, wie beim Apache Preforker, auf neue Webrequests warten. Eine tolle Sache dabei ist allerdings, dass die Verbindung über FCGI passiert, und es dadurch möglich ist, die PHP ‚Worker‘ auf einem anderem Server zu starten. So kann der Nginx sich etwa um die Auslieferung von statischen Inhalten kümmern, und alle PHP Requests an einen anderen Server, oder sogar mehrere, effizient weiterreichen. So ist die Auslieferung von statischen Inhalten sehr intuitiv und schnell umsetzbar, ohne dass ein PHP-Modul geladen wird.

Apache ist ein großartiger Webserver der sehr viele Anwendungsfälle sehr gut abdeckt. Aber gerade, wenn man seine eigene Infrastruktur aufbaut, weil man Applikationen schreibt, die viele Benutzer bedienen sollen, ist Nginx eine Option, die in Betracht gezogen werden sollte. Das gleiche gilt, wenn man ’nur irgend einen Webserver zum lokalen Entwickeln“ braucht, und der in PHP eingebaute Webserver an seine Grenzen gestoßen ist.

PHP Magazin: Vielen Dank!


src=“http://www.entwickler.com/konferenzen/input3/bilder/6882.jpg“ />Volker Dusch ist Software Entwickler und arbeitet für das Soziale Netzwerk für Wissenschaftler, ResearchGate, in Berlin.

Er hat mit Programmierung in PHP in den früher PHP 4 tagen begonnen und etwa elf Jahre Erfahrung mit der Sprache.

In seiner Freizeit arbeitet er an PHPUnit, jenkins-php.org und eigenen anderen Projekten mit, spielt Schach, Badminton, Poker, PC spiele oder genießt esports.

Er ist aktiv auf Twitter, GitHub, und Stackoverflow.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -