当社のアプリケーション配信プラットフォームの最新リリースである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のすべての新機能と機能の詳細な概要を説明します。
編集者 – NGINX Plus R8 では、OAuth 2.0 標準を使用した認証の実装である OAuth テクノロジー プレビューを導入しました。詳細は、もともとこちらに掲載されていました。 NGINX Plus R10 では、OAuth テクノロジー プレビューを JSON Web Token (JWT) 標準のネイティブ サポートに置き換えました。
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 はそれをサポートするクライアント 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 を実行している場合は、できるだけ早くリリース 8 にアップグレードすることを強くお勧めします。 数多くの修正と改善が行われており、サポート チケットを発行する必要がある場合に、当社がサポートしやすくなります。 インストールおよびアップグレードの手順については、カスタマー ポータルをご覧ください。
NGINX Plus をまだお試しいただいていない方は、Web アクセラレーション、負荷分散、アプリケーション配信、または強化された監視および管理API を備えた完全にサポートされた Web サーバーとして、ぜひお試しください。 今すぐ30 日間の無料評価を開始して、NGINX Plus がアプリケーションの配信とスケールアウトにどのように役立つかを実際に確認することができます。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"