おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

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

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ヘッダ付与をやめています。