2015年12月17日木曜日

ApacheがHTTP/2へ

定番ウェブサーバApacheがバージョン2.4.17でHTTP/2への対応を果たしました。
すったもんだもあったHTTP/2は結局のところGoogleのSPDY/4が化けたようです。
今年初めにServersMan@VPSを再設定した際、
どうせもうすぐHTTP/2が始まるし、ということでSPDYへの対応をしなかったのですが、
これでようやくHTTP/2に対応できます。
で、動かしているUbuntu 14.04で早速バージョンアップ、
といいたいところですが、OpenSSLのバージョンもあげなきゃなりませんし、
# apt-get install apt-show-versions
# apt-show-versions | grep apache
して確認してもapt-getでアップグレードできるバージョンはずいぶん古く、
ソースからインストールする必要がありそうです。
ちょーめんどー。

ところでUbuntuにはPPA(Paersonal Package Archive)という、
誰かが勝手に公開しているパッケージをインストールすることができます。
これならソースをビルドする必要はありません。
で、探してみるとondrejさんが作ってくれていました。
14.04(Trusty)用もあります。感謝感謝。

ということでインストール、というかアップグレードです。
が、その前にadd-apt-repositoryがない…orz
ということでこれからインストールです。
パッケージ名が分からなかったので、
# apt-get install apt-file
# apt-file update
# apt-file search add-apt-repository
で探したところ"software-properties-common"のようなので
# apt-get install software-properties-common
でインストールしました。次いで
# add-apt-repository ppa:ondrej/apache2
# apt-get update
で準備完了です。
# apt-show-versions | grep apache
の結果を見ると、希望どおり2.4.17に上げられそうです。

これでやっとアップグレードできます。
# apt-get install openssl
# apt-get install apache2
を実行すると、途中"/etc/apache2/mods-available/ssl.conf"の上書きについて警告されますが、
別シェルでログインし、元のファイルをコピーして保存した上で、
[Y or I : install the package maintainer's version]を選択し、後で調整です。
まあ実際には差は大したことなかったので、
今回提供されたものをそのまま使っています。
完了後には一応、
# apt-cache policy apache2
# apt-cache policy openssl
でインストールされているパッケージのバージョンを確認しておきます。
実体のバージョンは
# openssl version
# apache2 -v
で確認できます。

このままではまだHTTP/2は有効になっていないので
# a2enmod ssl http2
を実行し、"/etc/apache2/sites-enabled/"ディレクトリにある
SSLサイトの各設定ファイルのServerNameディレクティブの直後辺りに
Protocols h2 http/1.1
を追加し、
# /etc/init.d/apache2 restart
を実行して有効化します。
ちなみにSSLじゃないサイトについては"h2"ではなく"h2c"を指定すればいいようです。

で、Chromeブラウザからそのサイトにアクセスして、
同時に"chrome://net-internals/#http2"をみると…
[HTTP/2 sessions]項目の表にそのサイトのURLがあります。
どうやらこれで良さそうです。

0 件のコメント:

コメントを投稿