先日、rita-ch.comのPHPのバージョンを7.0系に入れ換えましたが、本日朝、nginxをALPN対応(OpenSSL 1.0.2k使用)にした独自ビルドの物に入れ換えました。これによりChromeではHTTP/2でアクセスできるようになったはずです(記事画像はHTTP/2 Testでチェックした結果の画面)。同時にセキュリティ強化の一貫としてTLS1.0/1.1のサポートを切るなどしたのでIE10以前やAndroid 4.3以前のクライアントなどからはSSLでアクセスできなくなったと思います。様子を見てSSLオンリーにするかもしれません(HSTS)。なお、さくらのVPS側のnginx/PHPの更新については現在の所未定です。以下、ビルドメモ。
メモ
nginxのビルドからインストールまで。
ALPNに対応するOpenSSL 1.0.2系の最新版を利用し、zlibも最新版を利用する(nginxのビルドと同時にOpenSSL/zlibもビルドされるのでソースだけでOK)。
以下はUbuntu 14.04(Upstart)の場合で、必要なライブラリがsudo apt-get build-dep nginxなどでインストール済みであるものとする。
$ wget https://nginx.org/download/nginx-1.12.0.tar.gz $ wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz $ wget http://zlib.net/zlib-1.2.11.tar.gz $ tar xzvf nginx-1.12.0.tar.gz $ tar xzvf openssl-1.0.2k.tar.gz $ tar xzvf zlib-1.2.11.tar.gz $ cd nginx-1.12.0 $ ./configure \ --prefix=/usr/share/nginx \ --conf-path=/etc/nginx/nginx.conf \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log \ --lock-path=/var/lock/nginx.lock \ --pid-path=/run/nginx.pid \ --modules-path=/usr/lib/nginx/modules \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-scgi-temp-path=/var/lib/nginx/scgi \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ --with-debug \ --with-pcre-jit \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_realip_module \ --with-http_auth_request_module \ --with-http_v2_module \ --with-http_slice_module \ --with-threads \ --with-http_addition_module \ --with-http_geoip_module=dynamic \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module=dynamic \ --with-http_sub_module \ --with-http_xslt_module=dynamic \ --with-stream=dynamic \ --with-stream_ssl_module \ --with-openssl=../openssl-1.0.2k \ --with-zlib=../zlib-1.2.11 $ make $ sudo cp -R /etc/nginx /etc/nginx.backup $ sudo cp /etc/init/nginx.conf /etc/init/nginx.conf.backup #←不要だったかも $ sudo cp /etc/logrotate.d/nginx /etc/nginx.backup/nginx-logrotate #←不要だったかも $ sudo apt-get remove nginx libnginx-* nginx-common nginx-full $ sudo make install $ sudo ln -s /usr/share/nginx/sbin/nginx /usr/sbin/nginx $ sudo mv /etc/nginx /etc/nginx.orig $ sudo mv /etc/nginx.backup /etc/nginx $ sudo nginx -t #←起動前に設定ファイル確認 $ sudo service nginx start #sudo start nginxでもOK