Version 1.4.0 von Nginx überführt HTTP-1.1- in Websocket-Verbindungen, verwendet OCSP beim Validieren von Zertifikaten und setzt experimentell auf Googles SPDY.
Nginx ist ein Web-, E-Mail- und Proxy-Server, der unter einer BSD-Lizenz steht und sich als Apache-Alternative großer Beliebtheit erfreut. Version 1.4.0 enthält nun einige Features, die im Laufe der letzten Monate in den 1.3.x-Zweig eingeflossen sind.
So verwandelt Nginx HTTP-1.1- in Websocket-Verbindungen. Dafür erzeugt der Server einen Tunnel zwischen einem Client und dem über Proxy erreichbaren Server, sobald der Client über den Upgrade-Switch einen Protokollwechsel anfragt und der Server diesen mit dem Rückgabecode 101 bestätigt. Da der Reverse Proxy den Header des Clients nicht an den Server weiterleitet (Hop-by-hop), muss der Header explizit ausgewiesen werden, etwa so:
location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Das OCSP (Online Certificate Status Protocol) erleichtert es einem Client, die Gültigkeit von Serverzertifikaten zu überprüfen, indem die Informationsabfrage in einem Abwasch mit dem TLS Handshake stattfindet. Das soll Bandbreite sparen, weil so keine Zertifikatssperrlisten über das Netzwerk wandern müssen.
SPDY spricht sich als “speedy” aus und ist ein experimentelles, TCP-basiertes Netzwerkprotokoll von Google, das die großen Browser inzwischen unterstützen. Indem SPDY die Übertragungsdaten bündelt und parallele Datenübertragungen erlaubt, verdoppelt es laut Google die Geschwindigkeit beim Seitenaufbau. Der experimentelle Support für das Feature in Nginx deckt Googles Draft 2 ab, während das Unternehmen zur Zeit bereits am vierten Entwurf arbeitet.
Nicht zuletzt entpackt der Server dank des Moduls ngx_http_gunzip_module mit GZIP komprimierte Antworten automatisch, wenn die Clients das nicht beherrschen. So lassen sich Daten kompakt ablegen, was Speicherplatz und Datendurchsatz reduziert. Wer eine Probefahrt mit Nginx 1.4.0 plant, findet den Code auf der Downloadseite des Projekts.



