LoginSignup
11
9

More than 5 years have passed since last update.

TengineでHTTP/2とSPDYを両方サポートする

Posted at

nginxのHTTP/2サポート開始とSPDYサポート停止

nginxは1.9.5からHTTP/2をサポートするようになりましたが、一方で同時にSPDY/3.1のサポートを打ち切っています。以下はnginx-1.9.5のChangeLogの抜粋です。(nginxの変更履歴はこちら)

    *) Feature: the ngx_http_v2_module (replaces ngx_http_spdy_module).
       Thanks to Dropbox and Automattic for sponsoring this work.

1.9.4までは--with-http_spdy_moduleというオプションが用意されていましたが、1.9.5以降ではこのオプションおよびSPDY/3.1の実装自体が削除されてかわりに--with-http_v2_moduleというオプションとHTTP/2の実装が入りました。

ばっさり切られるとそれはそれで困るのですが、昨年のはじめの段階でSPDYの提唱元であったGoogleはすでにSPDYの将来的なサポートの停止を宣言するとともにHTTP/2への移行を促していましたし、これはある程度仕方がないことでしょう。

SPDYサポートの需要について

殊スマートフォンではHTTP/2のサポートはまだ十分ではない状況ですし、HTTP/2はしゃべれないけどSPDYはしゃべれるという端末(e.g. iOS8.x)は今後しばらく残るだろうと思われます。そのため将来的にはHTTP/2一本になっていくとしてもHTTP/2とSPDYの両方をサポートしたサーバの需要はまだそれなりにあるでしょう。

実際、CloudflareのようにHTTP/2とSPDYの両方をサポートしているCDNもあります。

TengineでHTTP/2とSPDYを両方ともサポートする

Tengineはnginxの有名なフォークです。モジュールの動的組み込みやアップストリームのヘルスチェックなど、nginx本家にはない機能が実装されてたりします。で、昨年末に新しいバージョン(2.1.2)がリリースされましたが、公式サイトの説明に下記の一文があります。

support for both HTTP v2 protocol and SPDY v3 protocol, be able to use them together.

どうやらTengineではHTTP/2とSPDY/3.1の両方が利用出来るようです。実際こんな感じでlistenディレクティブにspdyhttp2両方のパラメータを渡すことができます。

listen 443 ssl spdy http2;

SPDYとHTTP/2両方サポートしたいなぁ、どうしようかなぁと考えてたのですが、さっとやるならTengineを利用するのが良さそうです。

11
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
9