NGINX Plus リリース 32 (R32) の提供開始を発表できることを嬉しく思います。 NGINX オープンソースをベースにした NGINX Plus は、唯一のオールインワン ソフトウェア Web サーバー、ロード バランサー、リバース プロキシ、コンテンツ キャッシュ、API ゲートウェイです。
NGINX Plus R32 の新機能と強化された機能は次のとおりです。
このリリースの最後を飾るのは、NGINX オープンソースから継承された新機能とバグ修正、および NGINX JavaScript モジュールの更新です。
注記: NGINX Plus R31 以外のリリースからアップグレードする場合は、現在のバージョンとこのバージョン間のすべてのリリースについて、以前の発表ブログの「動作の重要な変更」セクションを必ず確認してください。
NGINX Plus R18 で導入された OpenTracing モジュールは非推奨となり、NGINX Plus R34 では削除対象としてマークされています。 それまでは、関連パッケージはすべての NGINX Plus リリースで利用可能になります。 OpenTracing モジュールの使用を、 NGINX Plus R29で導入されたOpenTelemetry モジュールに置き換えることを強くお勧めします。
ModSecurity モジュールは 2024 年 3 月 31 日にサポートが終了しました。 その結果、modsec パッケージは NGINX Plus リポジトリから削除され、今後は NGINX Plus リポジトリから利用できなくなります。
NGINX オープンソースおよび NGINX Plus パッケージは、PGP キーを使用して署名されます。 このキーは 2024 年 6 月 16 日に有効期限が切れるように設定されています。 既存のパッケージを 2024 年 6 月 16 日以降も引き続き検証できるように、キーの有効期限を更新しました。 今後のリリースのパッケージに署名するための新しいキー ペアを生成します。
すべての NGINX ユーザーは、次の手順に従って更新された PGP キーをダウンロードしてインストールする必要があります。
Ubuntu/Debianの場合:
wget -qO - https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
RHEL/CentOS の場合:
sudo rpm -e gpg-pubkey-7bd9bf62-5762b5f8
sudo rpm --import https://nginx.org/keys/nginx_signing.key
2024 年 6 月 16 日以降は、キーを更新するまでソフトウェア署名を検証できなくなります。
今後の NGINX Plus リリースでは、パッケージングとリリース ポリシーを合理化する予定です。 NGINX Plus は、サポートされているオペレーティング システム ディストリビューションの最新バージョンでのみ構築およびテストされます。 古いディストリビューションに NGINX Plus をインストールする場合、パッケージ マネージャーによって依存ライブラリとパッケージの更新が提案されることがあります。
このリリースでは、サポートされているプラットフォームに次の変更が加えられました。
サポートされる新しいオペレーティング システム:
削除された古いオペレーティング システム:
NGINX Plus R33 で非推奨となり削除が予定されている古いオペレーティング システム:
以前は、NGINX は NGINX 構成で参照されるたびに証明書、キー、または証明書失効リストをロードしていました。 つまり、同じオブジェクトへの複数の参照により、そのオブジェクトのリロードが同じ回数発生することになります。 この遅延は、信頼できる証明書のリストなどのディレクティブを継承するときにさらに増大します。 特定の条件下では、この動作により NGINX の起動時間が大幅に影響し、設定を保存するために大量のメモリが必要になる可能性があります。
新しい動作では、SSL ディレクティブはキャッシュされた証明書ファイルと関連オブジェクトを参照するようになりました。 その結果、同じ証明書オブジェクトを繰り返し参照する構成のメモリフットプリントと読み込み時間が大幅に削減されます。 この利点は、信頼できる証明書の小さなセットが多数のロケーション ブロックにわたって参照される大規模な NGINX 構成の場合に最も顕著になります。
以下は、NGINX が約 5400 個のロケーション ブロック (トップレベルおよびネスト) と 878 個の証明書で構成されている場合の読み込み時間の改善を視覚化したものです。
グラフの右側に向かうにつれて読み込み時間が大幅に減少していることに注目してください。平均読み込み時間は、変更前の約 40 秒から、新しい動作では約 6 秒に減少しています。
NGINX Plus R32 は、NGINX に新しい構成レイヤーを追加するNGINX オープンソース 1.25.5の機能を継承しています。具体的には、NGINXストリームモジュールはルーターとして機能するようになり、ストリーム コンテキストから http、メールなどの他のコンテキスト、またはストリーム コンテキスト自体内の別の仮想サーバーに接続を渡す機能を持つプロキシとして機能します。
この機能は、このリリースで導入されたngx_stream_pass_module モジュールの一部として利用できます。 このモジュールには、クライアント接続を渡すアドレスを指定するために使用できる単一のディレクティブ「pass」があります。 アドレスは、IP アドレスとポートの組み合わせ、ソケット パス、または NGINX 変数によって参照されて指定できます。
この機能により、すべてのトラフィックを単一の L4 エンドポイント経由で実行したいお客様は、L4 ストリーム コンテキストで SSL 接続を終了し、ストリーム コンテキスト内の他のモジュール (http、メール) または他の仮想サーバーに渡すことができるようになりました。 さらに、SSL 接続はサーバー名またはプロトコルに基づいて条件付きで終了し、残りのトラフィックを他の場所にプロキシすることもできます。 これにより、単一のエンドポイントからのトラフィックを管理するための新しい一連の構成動作が可能になります。
次の構成スニペットは、ストリーム モジュール内の SSL 接続を終了し、要求されたサーバー名に基づいて、条件に応じて、それらを http コンテキストまたはストリーム コンテキスト内の別の仮想サーバーに渡します。
http {
server {
listen 8000;
location / {
return 200 foo;
}
}
}
stream {
map $ssl_server_name $pass_port {
foo.example.com 8000;
default 9001;
}
server {
listen 9000 ssl;
ssl_certificate domain.crt;
ssl_certificate_key domain.key;
pass 127.0.0.1:$pass_port;
}
server{
listen 9001;
return bar\n;
}
}
この例では、すべての SSL 接続はストリーム サーバー ブロックで終了します。 受信リクエスト内のサーバー名に応じて、接続はポート 8000 でリッスンしている http サーバーに渡されるか、ポート 9001 でリッスンしているストリーム仮想サーバーに渡されます。
モジュールの別のアプリケーションは、サードパーティのモジュールが SSL 終了をサポートしていないユースケースに対処します。 このようなシナリオでは、stream_pass モジュールは、TLS 暗号化接続をサードパーティ モジュールに渡す前に終了できます。
この例では、ネイティブで SSL をサポートしていないRTMP モジュールが、stream_pass モジュールを使用して TLS 暗号化トラフィックを受け入れる方法を示します。
rtmp {
server {
listen 1935;#rtmp
application foo{
live on;
}
}
}
stream {
server {
listen 1936 ssl; #rtmps
ssl_certificate domain.crt;
ssl_certificate_key domain.key;
pass 127.0.0.1:1935;
}
}
この構成スニペットでは、SSL 接続はストリーム サーバー ブロックで終了され、rtmp に渡されます。 接続は RTMP モジュールに対して暗号化されていないように見えるため、SSL 接続をサポートするための追加のカスタマイズや処理オーバーヘッドが不要になります。
NGINX Plus R32 には、NGINX Plus の特権実行と非特権実行の両方に対応した NGINX Plus コンテナ イメージの公式提供が含まれています。 両方のコンテナ タイプは、NGINX がサポートする管理プレーンへの接続を容易にするために、NGINX エージェントのオプションのインストールでも利用可能になります。 イメージは、private-registry.nginx.com にある NGINX レジストリからダウンロードできます。 NGINX Plus 証明書とキー、または JSON Web Token (JWT) を使用してイメージにアクセスするには、次の手順に従ってください。
実験的な HTTP3/QUIC 実装では、次の潜在的なセキュリティ問題が特定され、修正されました。
NGINX Plus R32 はNGINX Open Source 1.25.5をベースとしており、 NGINX Plus R31のリリース以降に行われた機能変更、特徴、バグ修正 (NGINX 1.25.4 および 1.25.5) を継承しています。
最近のリリースから継承された新しい変更、機能、バグ修正、回避策の完全なリストについては、NGINX の変更ファイルを参照してください。
NGINX Plus R32 には、NGINX JavaScript (njs) モジュール バージョン 0.8.4 からの変更が組み込まれています。 以下は、0.8.2 (NGINX Plus R31 に同梱されたバージョン) 以降の njs の注目すべき変更点の一覧です。
すべての機能、変更、バグ修正の包括的なリストについては、njs の変更ログを参照してください。
NGINX Plus を実行している場合は、できるだけ早く NGINX Plus R32 にアップグレードすることを強くお勧めします。 素晴らしい新機能に加えて、いくつかの追加の修正と改善も導入され、サポート チケットを発行する必要がある場合に NGINX がサポートしやすくなります。
NGINX Plus ユーザーでない方は、ぜひ試してみることをお勧めします。 セキュリティ、負荷分散、API ゲートウェイのユースケースに使用したり、強化された監視および管理 API を備えた完全にサポートされた Web サーバーとして使用したりできます。 今すぐ30 日間の無料トライアルを始めましょう。
「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"