BlankTar

about | blog | works | photo

うちのサイトは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から。
http1.1での表示速度。

で、こちらがHTTP/1.1 over tls。
https1.1での表示速度。

最後、HTTP/2。
http2での表示速度。

Load Timeで言うとhttpが最速で0.955s、二番目がhttpsの1.325s、三番目がhttp2の1.428s。
つまり、どういうことかと言うと、SSLを導入すると遅くなる。

といっても、なんでか知らないけどgoogle analyticsのjsを読み込むのにhttp2のときだけやたらと時間掛かってたりするので、ちょっと不公平な気がしますね。
CSSが読み込み終わるのはhttpsよりもhttp2の方が若干速く終わっているので、SSLを使う前提ならhttp2の方が優位なのかもしれません。

まあぶっちゃけ。このサイトだとファイル数もファイルサイズも少なすぎてちょっとよく分かりませんという結論です。
極端に悪くなることは無さそうだから、とりあえず導入かなぁ…。

< pythonでBag-of-Visual Wordsとやらを実装してみた。 gentoo linuxで起動時にhdparmの設定を適用する >