H2O est un tout nouveau serveur web écrit en C qui support HTTP/2, HTTP/1.1 et qui surpasse les performances déjà importantes de Nginx. H2O Web Server est simple a configurer et son développement avance rapidement, grâce à son concepteur Kazuho Oku. Les benchmarks HO2 vs Nginx qu’il a réalisé, me donne envie de migrer de Nginx vers H2O.
Ce benchmark est issu du site web du créateur de H2O web server. Juste impressionnant !
H2O va vite, il a une empreinte mémoire plus petite que Nginx. H2O propose de nombreuses possibiltés, qui en font un serveur web de choix pour les containers Docker :
Sur le wiki on trouve de nombreux exemples de configuration comme du FastCGI pour WordPress, php-fpm ou Ruby.
Wordpress avec H2O web server
hosts:
"www.example.com":
listen:
port: 80
paths:
"/":
file.dir: /path/to/doc-root # serve static files if found
redirect: # if not found, internally redirect to /index.php/<path>
url: /index.php/
internal: YES
status: 307
file.custom-handler: # handle PHP scripts using php-cgi (FastCGI mode)
extensions: .php
fastcgi.spawn: "PHP_FCGI_CHILDREN=10 exec /usr/bin/php-cgi"
access-log: /path/to/the/access-log
error-log: /path/to/the/error-log
pid-file: /path/to/the/pid-file
http2-reprioritize-blocking-assets: ON # performance tuning option
H2O web server configuration pour php-fpm
hosts:
"www.example.com":
listen:
port: 80
paths:
"/":
file.dir: /path/to/doc-root # serve static files if found
file.custom-handler: # connect to external FastCGI server listening to /tmp/fcgi.sock
extension: .php
fastcgi.connect:
port: /tmp/fcgi.sock
type: unix
access-log: /path/to/the/access-log
error-log: /path/to/the/error-log
pid-file: /path/to/the/pid-file
http2-reprioritize-blocking-assets: ON # performance tuning option
Le code source de H2O est disponible sur Github. H2O Web server est développé en C et évolue rapidement. Sa compilation et exécution sur RaspberryPi ne pose aucun problème. J’ai même commencer a préparer un container Docker que je vais bientôt publier sur Docker Registry.
Vous pouvez lire le très bon article du site Calomel.