HTTP/2をNginxに実装しよう。HTTP/2 QUIC

Nginx HTTP/2
@see https://www.nginx.com/blog/http2-r7/

今回は静かなブームになっている、HTTP/2QUICプロトコルについて記事としてまとめました。

HTTP/2のメリット

@see http://blog.redbox.ne.jp/http2-cdn.html

簡単に言うとサーバとクライアントとの通信が多重化され速くなります。多数のHTTPリクエストやレスポンスを1本にまとめて通信ができるようになります。他にはHPACK(RFC 7541)によるヘッダ圧縮など。

スマホ端末増加で生じてきたRTT遅延の軽減

  • TCPを用いるアプリケーションの最大スループットは,往復の遅延時間(RTT:Round Trip Time)の影響をうける
  • ウィンドウサイズが64Kバイトの場合のTCP最大スループットの理論値は以下のとおり

もっとも,ネットワークに接続しているPCが100台あって,それぞれが何らかの通信を行っている場合,100台のトータルでは100Mbpsの帯域幅を使い切ることが可能です。ですから,通常の用途であれば,遅延が大きな問題になることは,あまりないと思います。

しかし,遅延が問題になるケースもあります。代表的な例は,国際間通信とモバイル通信です。

@see ネットワークにかかるさまざまな遅延要素

RTT(Round Trip Time:往復遅延時間)

RTT 往復遅延時間

ただ実際のところ、ある程度の規模のサービスでないと体感できない程の差です。まだまだHTTP/2自体が開発途上のようで、大規模なサービスの通信でかなり差が出てくるのかなと。

対応ブラウザ

Chrome, Firefoxの最新版はHTTP/2に対応しています。

HTTP/2を利用するのに必要な設定はとても簡単!

また、HTTP/2に対応していないクライアントはHTTP/1.Xで通信が行うように柔軟に実装されているので、せっかくHTTPS通信を提供しているサーバであればHTTP/2を設定しないのは損な気がするけど、今実装していないからといって、大きいサービスでなければまだ実装を急がなくても良いもの。

※弊社公式サイトは今月中に別のサーバに移転する予定があるので、その時にでも(ㆁᴗㆁ✿)

NginxにHTTP/2を設定しよう

listen 443 ssl の隣にhttp2と記述するだけです。Nginxの1.95以降ならHTTP/2に対応しています。それ以前のバージョンの場合はソースからインストールしてバージョンをあげましょう。

HTTP/2の確認方法

HTTP/2 and SPDY indicator

Chromeのアドオンの『HTTP/2 and SPDY indicator』を使うのが簡単かなと。

HTTP/2 and SPDY indicator

【拡張機能を追加】をクリックでインストール出来ます。

HTTP/2の通信を見てみよう

HTTP/2

HTTP/2の対応のサイトにアクセスすると青く光ります。

QUIC

HTTP/2 quic プロトコル

QUICプロトコルも対応しているサイトだと緑になる模様です。

QUICプロトコル

QUICは機能的にはTCP+TLS+HTTP/2と同じであるが、QUICはUDPの上に実装される。QUICのTCP+TLS+HTTP/2より優れてる点は以下のとおりです

多重化

TCP上のTHTP/2は、TCPのヘッドオブラインブロッキングの影響を受けます。HTTP/2は多くのストリームをTCPの単一バイトストリーム上に構成するため、TCPセグメントの損失は再送が届くまで多くの後続の処理に影響を与えます。

QUICは多重処理のためにゼロから設計されているため、損失したパケットは、そのパケットが転送していたストリームにしか影響しません。それぞれのストリームにおいてフレームが届いた順に処理ができ、損失のないストリームはそのまま処理を進められます。

@see QUICの仕様(ドラフト)が公開されたので、概要を読む

Googleが開発しているプロトコルで、特長としてHTTP/2のフレームをTCPでなく、UDPパケットとして送受信をしていて、現在既に実装されています。

HTTP/2もQUICプロトコルは、システム側で当たり前に実装しているような、そんな静かなブームになりそうな気がします。サーバ証明書無償化サービスが出てきたりと、WEBのHTTPS化の波はばんばん感じていますが、お客様から『HTTP/2で』という注文はまだまだ先かなと見ています。

引き続き動向をチェックしたいと思います。
お疲れ様です。

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG