在「Migrate to Ubuntu 16.04」這邊看到換 16.04 的理由:
支援 http2 是升級到 Ubuntu 16.04 很大的動機。原因是前一版 14.04 裡 openssl 太舊,不支援 ALPN 協定,Chrome 瀏覽器又放棄了 NPN 的舊協定,詳細。你要嘛自己編譯 nginx ,要嘛就是升級到 16.04 才能解決。選哪個方法就看各公司的政策,升了 OS 問題就直接解決了。
不過 Ondřej Surý 包了一個有新版 openssl 的套件出來,所以在 12.04 或是 14.04 都可以使用 ALPN 版本的 nginx:「PPA for NGINX with HTTP/2 on Ubuntu 12.04 LTS and higher」。
目前 16.04 上的 Puppet 爛了不少東西,還是得靠 14.04 吃飯... orz
貌似即便用了 Ondřej Surý 包的 nginx , ALPN 也不會 100% 正常運作,這是用 openssl 和 KeyCDN 的測試工具看起來的結果
錯怪他了,看來是 nginx 重啟的時候舊 process 沒砍乾淨造成的,只好先從官方打包 mainline 的 1.11.1 降到 Ondřej Surý 包的 1.10.1 了~