ブログ | NGINX

NGINX Plus R8 の発表

NGINX-F5 水平黒タイプ RGB の一部
オーウェン・ギャレット サムネイル
オーウェン・ギャレット
2016 年 1 月 19 日公開

当社のアプリケーション配信プラットフォームの最新リリースであるNGINX Plus Release 8 (R8)の提供開始を発表できることを誇りに思います。 このリリースには、完全に本番環境対応で強化された HTTP/2 の実装、永続的な動的再構成 API、大規模なビデオ ファイルのスケーラブルなキャッシュを実現する新しいSliceモジュール、および完璧なアプリケーション配信を保証するその他の多くの機能が含まれています。

編集者 – NGINX Plus R8 では、OAuth テクノロジー プレビューも導入されました。 詳細については、以下を参照してください。

NGINX Plus R8 の主な新機能の詳細については、これらの関連リソースを参照してください。

 

NGINX Plus R8の主な新機能は次のとおりです。

  • 完全に本番環境対応の HTTP/2 実装NGINX Plus R7では、プロトコルが承認されてから 7 か月も経たないうちにHTTP/2 のサポートを導入しました。 NGINX は現在、 HTTP/2 のナンバー 1 Web サーバーです。 私たちの開発努力はそのリリースで終わることはなく、実装の改善に引き続き尽力してきました。 NGINX Plus R8では、完全にサポートされ、本番環境に対応し、強化された HTTP/2 標準の実装を提供できることを誇りに思っています。

    HTTP/2 により、Web サイトのパフォーマンスが最大 30%向上します。 NGINX Plus R8を使用すると、アプリケーションを変更することなく、新規サイトと既存サイトに HTTP/2 サポートを継続的に追加できます。

  • 永続的な動的再構成 API – NGINX Plus の動的再構成 API を使用すると、NGINX Plus を再起動したり、構成ファイルを手動で変更して再ロードしたりすることなく、アップストリーム サーバーを追加または削除できます。 これは自動スケーリングとサービス検出に最適な機能であり、オンデマンドで負荷分散プールを変更できるようになります。 NGINX Plus R8以降では、API を使用して行った変更は、再起動または設定の再読み込み後も保持されます。

    この API の更新により、NGINX Plus のロード バランシング構成に永続的な変更を加え、サーバーを追加および削除したり、ロード バランシングの優先順位を変更したりできるようになります。 この簡単に保護できる API を使用すると、必要に応じて頻繁に変更を加えることができます。

  • 大容量ビデオ ファイル用のスケーラブルなキャッシュNGINX Plus R8では、スケーラブルなコンテンツ キャッシュが改善され、HTML5 ビデオなどの大容量ビデオ ファイルをより適切に処理できるようになりました。 NGINX Plus は、ビデオ ファイル全体を 1 つのキャッシュ エントリとして保存するのではなく、ビデオ ファイルを小さなフラグメントに分割し、それらのフラグメントをキャッシュします。 このようにキャッシュを構造化すると、ユーザーがインターネット上でビデオを視聴する方法(早送り、早期終了など)に適合し、ユーザーの待ち時間やオリジン サーバーとの間のネットワーク トラフィックが削減されます。

NGINX Plus R8 の機能詳細

このセクションでは、 NGINX Plus R8のすべての新機能と機能の詳細な概要を説明します。

OAuth テクノロジー プレビュー

編集者 – NGINX Plus R8 では、OAuth 2.0 標準を使用した認証の実装である OAuth テクノロジー プレビューを導入しました。詳細は、もともとこちらに掲載されていました。 NGINX Plus R10 では、OAuth テクノロジー プレビューを JSON Web Token (JWT) 標準のネイティブ サポートに置き換えました。

実稼働対応 HTTP/2 実装

HTTP/2 は HTTP プロトコルの最新バージョンです。 HTTP プロトコルの元のバージョンの多くの問題を修正し、全体的なパフォーマンスの向上とリソースのより効率的な利用を実現します。

HTTP/2 の使用は、2015 年 2 月に標準が承認されて以来、着実に増加しています。 この記事の執筆時点では、すべての Web サイトの 6% が HTTP/2 を使用しており、インターネットユーザーの 69% がHTTP/2 をサポートするブラウザーを使用しています。

NGINX Plus R8を使用すると、現在入手可能な HTTP/2 の最も実戦テスト済みで、安定性と信頼性に優れた実装を入手できます。 HTTP/2 対応の Web サイトの 71% はNGINX と NGINX Plus を利用しており、早期導入者からのフィードバックを製品に取り入れています。 当社の HTTP/2 実装は、本番環境での使用に完全にサポートされており、最も厳しいワークロードを処理できるように拡張できます。

NGINX PlusはHTTP/2ゲートウェイとして機能します

NGINX Plus は、新しいプロトコルへの移行を容易にする「HTTP/2 ゲートウェイ」として機能します。 フロントエンドでは、NGINX Plus はそれをサポートするクライアント Web ブラウザーと HTTP/2 を通信します。 バックエンドでは、NGINX Plus は以前と同様に HTTP/1.x (または FastCGI、SCGI、uwsgi など) を通信します。 その間に、NGINX Plus は HTTP/2 と HTTP/1.x (または FastCGI など) 間の変換を行います。 つまり、NGINX Plus によってプロキシされるサーバーとアプリケーションは、HTTP/2 への移行による影響を受けず、クライアントが HTTP/2 を使用しているかどうかを知る必要さえありません。 ただし、HTTP/2 クライアントにサービスを提供する Web サイトとアプリケーションは、HTTP/2 をサポートするすべての Web ブラウザーで要求されているように、TLS/SSL を使用する必要があります。

NGINX Plus または NGINX の構成変更で必要なのは、 listenディレクティブにhttp2パラメータを追加することだけです。

443 ssl http2 default_server をリッスンします。

NGINX Plus および NGINX の HTTP/2 の詳細については、ホワイト ペーパーオンデマンド ウェビナーをご覧ください。

永続的な動的再構成

NGINX Plus は、構成を再ロードすることなく、バックエンド サーバーを動的に追加、削除、変更するためのHTTP ベースの API を提供します。 これは、サービス検出、自動スケーリング、およびオンデマンドでサーバーを追加および削除する必要があるその他のアプリケーションに最適な機能です。

NGINX Plus R8では、この API を使用して行われた変更は、NGINX Plus の再起動や設定の再読み込み後も保持されるようになりました。 アップストリームブロックに新しい状態ディレクティブを追加して、NGINX Plus がアップストリーム グループ内のサーバーの状態情報を保存するファイルに名前を付けます。 動的再構成 API を使用して行った変更はファイルに記録されます。 NGINX Plus は起動時にファイルを読み取り、これにより再起動後も変更が維持されます。

アップストリームバックエンド { ゾーンバックエンド 64k;状態/var/lib/nginx/state/backend.state; }

stateディレクティブは、NGINX Plus がアップストリーム グループ内のサーバーの状態情報を保存するファイルに名前を付けます。 構成に含まれている場合、 serverディレクティブを使用してサーバーを静的に定義することはできません。

ユーザーnginx には、/var/lib/nginx/state/ディレクトリに対する書き込み権限が必要です。 ディレクトリがまだ存在しない場合は、次のコマンドを実行できます。

$ sudo mkdir -p /var/lib/nginx/state $ sudo chown nginx:nginx /var/lib/nginx/state

大きなビデオファイルのためのスケーラブルなキャッシュ

キャッシュは、Web コンテンツの配信を高速化する最も迅速な方法の 1 つです。 キャッシュにより、コンテンツがエンドユーザーの近くに配置され、待ち時間が短縮されるだけでなく、上流のオリジン サーバーへのリクエスト数も削減され、帯域幅の使用量が減少し、容量が効果的に増加します。 ビデオ、特に HTML5 ビデオは、コンテンツが静的であり、最初に公開されたときに頻繁に要求される傾向があるため、キャッシュの主な対象となります。

HTML5 ビデオでは、ブラウザは HTTP バイト範囲リクエストを行ってコンテンツを疑似ストリームします。 たとえば、ビデオの最初の 1 分間を要求し、次に 2 分間を要求します。 この方法でストリーミングすると、ブラウザは不要なビデオのセクションをスキップし、代わりにユーザーが早送りまたは巻き戻ししたポイントから要求されたバイト範囲を開始できるため、早送り機能や巻き戻し機能の実装も簡単になります。

NGINX Plus R8 には、キャッシュされたビデオ ファイルに対するこのスタイルのブラウザとサーバーの相互作用をより適切にサポートするための新しいSliceモジュールが含まれています。 このモジュールはファイルを小さなフラグメントに分割し、それらのフラグメントをキャッシュします。 このようにキャッシュを構造化すると、HTML5 ビデオで使用されるような最新のビデオ ストリーミング技術に適合します。

キャッシュ スライスを有効にするには、 sliceディレクティブを追加します。

proxy_cache_path /tmp/mycache keys_zone=mycache:10m; location / { proxy_cache mycache; proxy_pass http://localhost:8000; slice 1m ; proxy_cache_key $uri$is_args$args $slice_range ; proxy_set_header Range $slice_range ; proxy_http_version 1.1; proxy_cache_valid 200 206 1h; }

このサンプル構成では、NGINX Plus はビデオ ファイルを 1 MB のフラグメントに分割します。 次のディレクティブも含める必要があります。

  • 定義されたキーに新しい$slice_range変数を含むproxy_cache_key – 元のファイルのフラグメントを区別するためにキャッシュ キーを設定します。
  • proxy_set_header – HTTP リクエストのRangeヘッダーを$slice_rangeで上書きします。 クライアントが要求したバイト範囲が、NGINX Plus によって作成されたフラグメント間の境界と一致しない場合、NGINX Plus は、クライアントのバイト範囲要求内のすべてのデータを取得するために複数のサブ要求を行う必要があります。
  • proxy_http_version – HTTP/1.0 はバイト範囲リクエストをサポートしていないため、リクエストを HTTP/1.1 にアップグレードします。

この新機能の詳細については、こちらの関連ブログ投稿をご覧ください。

追加機能

NGINX Plus R8では、次のような、完璧なアプリケーション配信を支援するための追加の改善も多数導入されています。

  • 複雑なアプリケーションに対するより柔軟なヘルスチェック。 デフォルトでは、NGINX Plus は、 upstreamブロックのserverディレクティブで指定されたポートにヘルスチェック メッセージを送信します。 NGINX Plus R8では、各ロケーションブロックに代替ポートを指定できるようになりました。これは、同じホスト上の多数のサービスの健全性を監視する場合に特に役立ちます。

    health_checkディレクティブに新しいポートパラメータを追加します。

    場所 / { proxy_pass http://backend; health_check port= 8080; }
    
  • デフォルトでは、NGINX Plus は HTTP HEADリクエストをキャッシュします (キャッシュする前にGETリクエストに変換します)。 このタイプのキャッシュを無効にするには、 proxy_cache_convert_head offディレクティブを含めます。

    HEADリクエストは、応答本文が返されない点を除いて、標準のGETリクエストと同じです。 HEADリクエストは、リンクの有効性、アクセス可能性、最近の変更をテストするのに役立ちます。

  • 新しい変数$realip_remote_addr はReal IPモジュールを使用するときに元のクライアント IP アドレスを取得します。
  • access_logおよびerror_logディレクティブの新しいnohostnameパラメータは、 syslogへのホスト名フィールドのログ記録を無効にします。ローカル syslog サーバーにログを記録する場合、ホスト名は不要です。

NGINX Plus Extras パッケージ内の次のモジュールが更新されました。

以下のパッケージは利用できなくなりました:

  • nginx-plus-http2 – HTTP/2 サポートがnginx-plusおよびnginx-plus-extrasパッケージに組み込まれました。 NGINX Plus は SPDY をサポートしなくなりました。
  • nginx-plus-lua – Lua サポートについては、 nginx-plus-extrasパッケージを使用してください。

NGINX Plus をアップグレードまたは試用する

NGINX Plus を実行している場合は、できるだけ早くリリース 8 にアップグレードすることを強くお勧めします。 数多くの修正と改善が行われており、サポート チケットを発行する必要がある場合に、当社がサポートしやすくなります。 インストールおよびアップグレードの手順については、カスタマー ポータルをご覧ください。

NGINX Plus をまだお試しいただいていない方は、Web アクセラレーション、負荷分散、アプリケーション配信、または強化された監視および管理API を備えた完全にサポートされた Web サーバーとして、ぜひお試しください。 今すぐ30 日間の無料評価を開始して、NGINX Plus がアプリケーションの配信とスケールアウトにどのように役立つかを実際に確認することができます。


「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"