CentOS6にhttp2の設定をしてみる

現在http1.1がデフォルトの設定になっていますが、今後はhttp2が主流になる可能性があります。そこで今回はhttp2の構築をApacheでやってみたいと思います。

http2って何?

色々なサイトの方が書いてくれているのでそちらを見て頂いたほうが早いです。

結構色々なサイトでhttp2の紹介がされています。一言で表すなら「時代が変わってミドルウェアも変わった」という感じです。

時代が変わった?

http1.1から16年ぶりの変更らしいです。http1.1の時代はテキストデータを扱うことをメインに考えられていたみたいです。ただ今は画像ファイルやCSS、JSなどの動きのあるサイトや処理が多くなってきています。今の動きに合わせた形になったとおもいます。

CentOS6でも使えるの?

http2はApache(ミドルウェア)の問題なので、CentOSなどのOSには基本的に依存しないので技術的に使う事は可能です。実際Apache2.4をCentOS6でも動かしているサイトはいくつもあります。

CentOS6にインストールは簡単?

簡単ではないかもしれません。CentOS6の標準だとApacheは2.2系になります。標準リポジトリを使わないで作業することになります。

ソースからインストール?

http2とApache2.4系でのインストールだとソースからインストールするというのが紹介されています。僕はソースからインストールができないのでyumからインストールしています。なので今回紹介する方法もyumになります。というわけでIUSのリポジトリをインストールします [c] yum -y install https://centos6.iuscommunity.org/ius-release.rpm [/c]

IUSのリポジトリをデフォルトからはずす

基本的なパッケージのアップデートやインストール時は、対象にならないようにデフォルトから外しておきます。 [c] vi /etc/yum.repos.d/ius.repo [/c] [c] [ius] name=IUS Community Packages for Enterprise Linux 7 - $basearch #baseurl=https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/$basearch mirrorlist=https://mirrors.iuscommunity.org/mirrorlist?repo=ius-centos7&arch=$basearch&protocol=http failovermethod=priority enabled=0 #enabled=1から変更 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY [/c] デフォルトから外れました

Nghttp2のインストール

http2を使うにはnghttp2が必要になります。これのインストールが必要ですがデフォルトパッケージにはないのでepelリポジトリを追加します [c] yum -y install epel-release [/c] インストール後の/etc/yum.repos.d/epel.repoにあるenabled=1を書き換えておいてください。 [c] vi /etc/yum.repos.d/epel.repo ... enabled=0 ... [/c] nghttp2のインストールをします [c] yum --enablerepo=epel install nghttp2 [/c]

/etc/mime.typesのインストール

もうひとつ、事前にインストールが必要になるパッケージがあります。/etc/mime.typesパッケージです。/etc/mime.typesパッケージはmailcapパッケージの中に含まれています。baseリポジトリからインストールできます。 [c] yum -y install mailcap [/c]

Apacheのインストール

最新のApache(2.4.25)インストールします。 [c] yum --disablerepo=base,extras,updates --enablerepo=ius install httpd [/c] これでインストール完了です

SSLのインストール

[c] yum -y install openldap-devel expat-devel yum --disablerepo=base,extras,updates --enablerepo=ius -y install httpd-devel mod_ssl [/c] SSLのインストール完了です

http2の設定

必要なミドルウェアのインストールをしたので、今度は設定を確認していきます。

モジュールの確認

http2を動かすのに必要なモジュールがインストールされている確認します。 [c] cat /etc/httpd/conf.d/ LoadModule http2_module modules/mod_http2.so [/c] ちゃんとロードされています。これがないとhttp2は使えないので確認してください。IUSリポジトリからインストールしている場合は問題無く入っていると思います。

SSLのconfファイルに設定

http2ではSSLが必須になるので、confファイルに書き込んでいきます [c] vi /etc/httpd/conf.d/00photoshoplab.conf #SSL <VirtualHost *:443> Protocols h2 http/1.1 [/c] 再起動します [c] /etc/init.d/httpd restart [/c] これで完了です。実際にhttp2になっているか確認します。

確認

確認方法はfirefoxの開発ツールで、ネットワークタブをクリックしてバージョン:HTTP/2.0となっているのを確認したらhttp2で通信出来ていることになります。