Nghttp2をソースコードからインストールする

動作確認システム CentOS 7

Webページを閲覧するための通信プロトコルとしてHTTPが使われているが、バージョンアップしたHTTP/2が登場している。 Apache WebサーバでHTTP/2に対応するためには、OpenSSLとNghttp2が必要である。 ここでは、Nghttp2をソースコードからインストールする方法を紹介する。

今回インストールするバージョンは、1.32.0である。 Nghttp2をインストールする前に、OpenSSLがインストールされている必要がある。また、ChromeはTLS上のプロトコルのネゴシエーションとして、ALPNにしか対応していないため、OpenSSLのバージョンが1.0.2以上である必要がある。 OpenSSLをインストールしていないか、バージョンが1.0.2未満であればOpenSSLをソースコードからインストールするを参考に先にOpenSSLのインストールを済ませておく。

事前準備

基本コマンドと開発ツール、libev-develがまだインストールされていなければ、インストールしておく。

yum groupinstall base development
yum install libev-devel

インストール

/usr/local/srcに移動してからソースコードをダウンロード、展開する。

cd /usr/local/src/
wget https://github.com/nghttp2/nghttp2/releases/download/v1.32.0/nghttp2-1.32.0.tar.gz
tar zxvf nghttp2-1.32.0.tar.gz

展開したディレクトリの中に入り、configでmakefileを作成し、コンパイル、インストールする。

cd nghttp2-1.32.0/
autoreconf -i
automake
autoconf
env OPENSSL_CFLAGS="-I/usr/local/ssl/include" OPENSSL_LIBS="-L/usr/local/ssl/lib -lssl -lcrypto" ./configure
make
make install

Nghttp2のライブラリパスを通す。

echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf
ldconfig