mod_h2が Apache2.4.17でデフォルトで組み込まれたのでビルドして試してみる。
今回はopenssl1.0.2を使いたいのでubuntu15.10を使います。
以前のubuntuだとうまくいかないかもしれない
nghttp2のインストール
nghttp2をインストールしておく必要があります
https://github.com/tatsuhiro-t/nghttp2#requirements
sudo apt-get install make binutils autoconf automake autotools-dev libtool pkg-config \ zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev \ libjemalloc-dev cython python3.4-dev python-setuptools git clone https://github.com/tatsuhiro-t/nghttp2.git cd ./nghttp2 autoreconf -i automake autoconf ./configure make sudo make install sudo ldconfig
apache2.4.17のビルド
ソースからビルド。
configure時に --enable-http2
sudo apt-get install git gcc g++ libpcre3-dev libcunit1-dev libev-dev libjansson-dev \ libjemalloc-dev cython make binutils autoconf automake autotools-dev libtool pkg-config \ zlib1g-dev libssl-dev libxml2-dev libevent-dev python3.4-dev libevent-openssl-2.0-5 wget http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.4.17.tar.gz tar zxvf ./httpd-2.4.17.tar.gz wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-1.5.2.tar.gz tar zxvf ./apr-util-1.5.4.tar.gz mv ./apr-1.5.2 ./httpd-2.4.17/srclib/apr wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-util-1.5.4.tar.gz ar zxvf ./apr-util-1.5.4.tar.gz mv ./apr-util-1.5.4 ./httpd-2.4.17/srclib/apr-util cd ./httpd-2.4.17/ ./configure --enable-http2 make sudo make install
設定
http2の設定としては、Protocolsにh2を指定する。
その他https用の設定を入れているだけです。
/usr/local/apache2/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so #コメントアウト解除 LoadModule http2_module modules/mod_http2.so #コメントアウト解除 Include conf/extra/httpd-ssl.conf #コメントアウト解除 Protocols h2 http/1.1 #追記
/usr/local/apache2/conf/extra/httpd-ssl.conf
#SSLSessionCache "shmcb:/usr/local/apache2/logs/ssl_scache(512000)" #コメントアウト #証明書と鍵を設定 SSLCertificateFile "/home/y/server.crt" SSLCertificateKeyFile "/home/y/server.key"
起動確認
sudo /usr/local/apache2/bin/httpd netstat -ta |grep -e http -e https tcp6 0 0 [::]:http [::]:* LISTEN tcp6 0 0 [::]:https [::]:* LISTEN ./nghttp2/src/nghttp https://localhost -v|grep HEADERS [ 0.008] send HEADERS frame <length=37, flags=0x25, stream_id=13> ; END_STREAM | END_HEADERS | PRIORITY [ 0.012] recv HEADERS frame <length=115, flags=0x04, stream_id=13> ; END_HEADERS ./nghttp2/src/nghttp http://localhost -v|grep HEADERS [ 0.001] send HEADERS frame <length=37, flags=0x25, stream_id=13> ; END_STREAM | END_HEADERS | PRIORITY [ 0.004] recv HEADERS frame <length=115, flags=0x04, stream_id=13> ; END_HEADERS