背景
- 1分で実現できる有用な技術の12月22日分です
- 前提として、HTTP2のパフォーマンスはnginxでHTTP2接続(not spdy3.1)の検証などを参照していただければと思います。
- テックブログをHTTP/2+PHP7+WordPressで構築してみた がFacebookのフィードに流れてきて、触発されました。
手順
- 手元の環境がMac OSで動いているサーバなので、Mac前提の設定です。
- こちらのサービスをHTTP2化してみます。
NginxをHTTP2オプション付きでインストール(20秒)
% brew install nginx --devel --with-http2
もともとSSLで動いているサイトの設定にhttp2の設定を2つ追加するだけです。(30秒)
http2
をlistenの部分に追加。AESGCM:HIGH
をssl_ciphersの先頭に追加。
以下に差分。
@@ -19,7 +19,7 @@ server { # HTTPS server server { - listen 443 ssl; + listen 443 ssl http2; server_name teraren.com; root /Users/matsu/Sites/teraren.com/www/public/; access_log /var/log/nginx/www.teraren.com main; @@ -32,7 +32,7 @@ server { ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS; + ssl_ciphers AESGCM:HIGH:ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS; try_files $uri @unicorn;
nginxを再起動(5秒)
% sudo brew services restart nginx
このプラグインを入れたChromeで確認。(5秒)
青い稲妻が表示されていれば、HTTP2で接続出来ていると言うことです。
まとめ
- 1分でnginxをHTTP2対応しました。
- SSL証明書はLet’s Encryptを使って簡単0円でサーバ証明書を取得を参考にして個人でも簡単に取得出来ます。
- やっとHTTP2が簡単に導入できる時代になってきました!
- 簡単なので、ついでにこっちもHTTP2に対応しました。
Comments