kaeruspoonがHTTP/2に対応しました

76de73a1dae79a86bb99a813bd8e8e0a?s=30&d=http%3a%2f%2fkaeruspoon%.net2f2014%2fimages%2fno imageTsukasa OISHI

Large
広島はよかったですね。

いまさら感もありますが、このブログ、kaeruspoonをHTTP/2に対応させました。
やる前はちょっと大変なのかなと思っていたのですが、ほとんど何もやることはありませんでした。

まず、サイトをSSL化させておきます。kaeruspoonはすでに Let's EncryptでHTTPS化しています。

kaeruspoonはweb serverにnginxを使っています。nginxはversion1.9.5からHTTP/2に対応しているので、versionをあげておきます。EC2のyumでは1.12.1になりました。

続いてHTTP/2の設定をしますが、nginx.confのlistenの項目にhttp2 を追加するだけです。

server {
        listen       443 ssl http2;
        server_name  www.kaeruspoon.net;
        ...

nginxを再起動してアクセスしてみたら、HTTP/2でやりとりしていました。
nginxでリバースプロキシをして、バックエンドのRailsアプリにリクエストを流していますが、こちらはhttpでアクセスしているため何も設定を変える必要はありません。

Chromeのツールでリクエストがどのくらい変わったのか見てみたのですが、ほとんど違いはありませんでした。考えてみると、www.kaeruspoon.net で提供しているリソースは本体のHTMLとひとつのJSとひとつのCSSだけなのでした。
HTTP/2にしたからには、CSSなどはひとつにまとめないほうがいいのかな。このあたりはまた時間を取って調べてみましょう。

はっきりいってブログに書くほどの内容でもないのですが、なんとなく書いてしまいました。こうしてインターネット上にまたゴミコンテンツが増えていきます。

HTTP Strict Transport SecurityとRails

Chromeのツールを見ていて気づいたのですが、HSTSヘッダがふたつ存在していました。最初は混乱したのですが、nginxでHSTSヘッダを追加していて、Rails側でもHSTSヘッダが付与されていたのでした。
最初はRails側でHSTSヘッダをつけないようにしようとしたのですが、config.ssl_options = { hsts: false } を設定してもmax-age0 になるだけでヘッダの付与自体は削除できないようでした。
このため、nginx側でのHSTSヘッダ付与をやめています。