gentooのnginxでHTTP2を試してみた。
うちのサイトはnginxで配信していて、さりげなくssl通信にも対応しています。 せっかく環境が揃っているので、いい加減重い腰を上げてHTTP2の通信に対応してみることにしました。
設定する
HTTP2のサポートが入っているバージョン1.9はまだ安定版の扱いを受けていないので、/etc/portage/package.keywords
に以下を追記します。
=www-servers/nginx-1.9.14 ~amd64
で、インストール。
# emerge nginx:mainline
USEフラグのhttp2
は最初から有効になっていましたが、環境によっては分からないので確認してから入れた方が良いかも。
設定ファイルに変更があるっぽいので更新しておく。
# etc-update
最後。設定ファイルを以下のように変更します。
listen 443 ssl http2;
追記したのはhttp2
の部分。
これだけで対応してくれるらしいです。
あとは再起動して完了。
# /etc/init.d/nginx restart
試してみる
導入してみても効果がよく分からないので、このサイトのトップページをwebpagetestで測ってみました。
まずは何も導入していないHTTP/1.1から。
で、こちらがHTTP/1.1 over tls。
最後、HTTP/2。
Load Timeで言うとhttpが最速で0.955s、二番目がhttpsの1.325s、三番目がhttp2の1.428s。 つまり、どういうことかと言うと、SSLを導入すると遅くなる。
といっても、なんでか知らないけどgoogle analyticsのjsを読み込むのにhttp2のときだけやたらと時間掛かってたりするので、ちょっと不公平な気がしますね。 CSSが読み込み終わるのはhttpsよりもhttp2の方が若干速く終わっているので、SSLを使う前提ならhttp2の方が優位なのかもしれません。
まあぶっちゃけ。このサイトだとファイル数もファイルサイズも少なすぎてちょっとよく分かりませんという結論です。 極端に悪くなることは無さそうだから、とりあえず導入かなぁ…。