Help us understand the problem. What is going on with this article?

nginxをHTTP/2対応にする方法(ソースビルド不要)

More than 1 year has passed since last update.

半年前くらいまで
nginxをHTTP/2対応にする方法(Chrome 51以降でも有効にする)

で、ソースから最新版をビルドしないといけなかったんだけど、最近のディストリビューションならもう新しいバージョンが入っているので、http2と一言かけば有効になってしまう。

バージョンの確認

$ nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled

という具合に、nginx/1.12.2 & OpenSSL 1.0.2になっていればOK。
あと、HTTP/2はSSLが前提なので、すでにHTTPSで通信できる設定になっていることが前提です。

対応させる

 nginxの設定ファイルの

  listen 443 ssl;

これを

  listen 443 ssl http2;

こうするだけ。

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ sudo systemctl restart nginx.service

テストして問題なければ再起動。

ブラウザで確認

 ChromeでDeveloperTool - Networkを見る

ヘッダのところを右クリックして"protocol"にチェックを入れる

品川駅付近の電源マップ_-_モバイラーズオアシス.png

リロードして、protocolのところがh2になっていることを確認。

Screen Shot 2018-01-29 at 21.10.14.png

HTTP/2の能力を活かすためには、webpackで固めていたJSをバラバラにするとかこまかい改善が必要なんだけど、とりあえずnginxサーバとしてはこれだけでOK。

admin-guild
「Webサービスの運営に必要なあらゆる知見」を共有できる場として作られた、運営者のためのコミュニティです。
https://admin-guild.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away