Carpe Diem

備忘録

NginxでHTTP/2

概要

Nginxが1.9.5からHTTP/2に対応しました。 ソースからmodule指定でビルドする必要もなく、mainlineの1.9.5をパッケージでインストールすれば使えます。

環境

Nginxインストール

Nginxの最新版をインストール(パッケージ管理)を参照

バージョンを確認します。

$ nginx -v
nginx version: nginx/1.9.5

大丈夫ですね。

SSL証明書の用意

SSLの設定を参照

/etc/nginxに以下のようにsslフォルダを作ってserver.key,server.crtを配置します。

└── ssl
     ├── server.crt
     └── server.key

conf設定

/etc/nginx/conf.ddefault.confを編集します。

.
├── conf.d
│   └── default.conf

以下のようにします。
ポイントはlistenのところにhttp2を入れることです。

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name         www.example.com;

    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

動作確認

自分のページにアクセスします。
https://www.example.com

ChromeではHTTP/2通信か簡単に調べられます。
chrome://net-internals/#http2
にアクセスして以下のようであればOKです。

f:id:quoll00:20151008234439p:plain

以上、お疲れ様でした。

ソース