Die aktuelle Version von nginx kann http/2. Bei den unter Ubuntu 16 verfügbaren Pakete ist das auch wunderbar trivial einzurichten. Bei älteren Ubuntus gibt es jedoch eine Stolperfalle.
Wenn man einfach nur ein normales nginx-Paket installiert, verwendet es dynamisch die OpenSSL-Bibliothek des Systems. Mit älteren OpenSSL-Versionen funktioniert jedoch kein ALPN für den Verbindungsaufbau. Dadurch baut Chrome (und IE) in dieser Konstellation keine http/2-Verbindung auf. Und natürlich bringt erst Ubuntu 16 eine ausreichend aktuelle Version von OpenSSL mit. Grmpf.
Es gibt aber Paketquellen, die nginx mit einem statisch gelinkten aktuellen OpenSSL anbieten. Damit funktioniert es auch auf älteren Ubuntu-Versionen. Am vertrauenswürdigsten erscheint mir dabei das PPA ondrej/nginx von Ond?ej Surý.
Funktioniert bei mir einwandfrei.
Nachtrag: Funktioniert fast einwandfrei. :) Das PPA enthält außerdem noch das Paket openssl. Das wollte ich eigentlich nicht systemweit updaten, hat sich jetzt aber über den Kanal eingeschlichen. Mal schauen ob es Nebenwirkungen gibt. Ggf. kann man das update verhindern, siehe diese zwei Stackoverflow-Fragen.