H2O ist ein Webserver, der zwar schon seit einer Weile in der Entwicklung ist, gegen altgediente Apachen aber wie ein junger Spund wirkt. Sysadmin-Kolumnist Charly Kühnast zieht die Gummistiefel an und will ergründen: Was kann der Dreikäsehoch?
Die meisten populären Distributionen bieten noch keine Pakete für H2O [1] an, aber es ist nicht schwer, den Wasser-Server zu bauen. Neben den üblichen Werkzeugen zum Selbstkompilieren benötigen Sie »cmake« . Holen Sie sich nun den Code mit dem Kommando
git clone https://github.com/h2o/h2o.git h2o
von Github. (Auf der DELUG-DVD liegt alternativ ein Quelltextarchiv.) Wechseln Sie in das Verzeichnis »h2o« . Als Build-Parameter dürfen Sie angeben, ob Sie für verschlüsselte Verbindungen Open SSL oder lieber Libre SSL [2] einsetzen möchten. Für Open SSL tippen Sie:
cmake -DWITH_BUNDLED_SSL=off
Wer den Open-SSL-Fork Libre SSL bevorzugt, ersetzt »off« durch »on« . Wenn Sie »auto« angeben, prüft Cmake, welche Open-SSL-Version Ihr System hat. Ist sie neuer als 1.0.2, kommt Open SSL zum Zuge, andernfalls Libre SSL. Die H2O-Entwickler favorisieren Libre SSL, weil es als sicherer gilt und Verfahren wie Chacha20-Poly1305 unterstützt. Doch arbeitet H2O dann eine Kleinigkeit langsamer als mit Open SSL.
Das ist bedeutsam, denn der Geschwindigkeit verdankt H2O seine steigende Popularität. Schon bevor H2O die Version 1.0 erreichte, machten Benchmarks [3] die Runde, in denen der Newcomer Webseiten doppelt so flott auslieferte wie der Sprinter Nginx. Mit ihm teilt sich H2O auch die Fähigkeit, als Reverse Proxy arbeiten zu können.
Wasser marsch!
Jetzt trennen Sie nur noch die Kommandos »make« und »sudo make install« von einem funktionierenden Webserver. Die ausführbare Datei entsteht in »/usr/local/bin/« , eine Beispiel-Konfigurationsdatei liegt im »examples« -Verzeichnis. Der Server starte mit:
/usr/local/bin/h2o -c /usr/local/h2o/examples/h2o/h2o.conf
In der mitgelieferten Konfiguration arbeitet der Server hinter den Ports 8080 (unverschlüsselt) und 8081 (mit HTTPS). Wenn Sie einen geeigneten Browser haben, etwa Firefox ab Version 36, können Sie sich sogar an dem neuen Protokoll HTTP 2 versuchen, über das ein anderer Artikel in diesem Linux-Magazin viel Wissenswertes zu berichten hat.
Der Browser mosert zwar wegen des selbst signierten Protokolls, aber das Setup funktioniert (Abbildung 1). Mit dem neuen HTTP-Protokoll, das erst seit Mai 2015 IETF-Standard ist, kommen viele andere Webserver noch nicht klar. HTTP 2 kann Verbindungen zusammenfassen und verfügt mit Hpack auch über ein neues Komprimierungsverfahren.
Infos
- H2O: https://h2o.examp1e.net
- Libre SSL: http://www.libressl.org
- Aktueller H2O-Nginx-Vergleich: http://www.it-wars.com/web-performance-H2O-vs-nginx/







