Release

NGINX Plus Release 29 (R29) のリリースについて

2023年 5月 8日に NGINX Plus Release 29 (R29) がリリースされましたので更新内容をまとめてみました。

こんにちは。 narai です。みなさん NGINX 使ってますか?
さて、2023年 5月 8日 に NGINX Plus の最新版 (R29) がリリースされましたので、追加された機能をまとめてみました。

サポートOSについて

NGINX Plus R29 でサポートされているディストリビューション

  • AlmaLinux 8, 9
  • Alpine Linux 3.15, 3.16, 3.17
  • Amazon Linux 2 LTS, 2023
  • CentOS 7.4+
  • Debian 11
  • FreeBSD 12.1+, 13
  • Oracle Linux 7.4+, 8.1+, 9
  • RHEL 7.4+, 8.1+, 9.0+
  • Rocky Linux 8, 9
  • SUSE Linux Enterprise Server 12 SP5, 15 SP2
  • Ubuntu 20.04 LTS, 22.04 LTS

R28 からの変更点としては、Alpine Linux 3.13,3.14ubuntu 18 がサポートから外れました。 また、Mod Security モジュール も EOL に伴いサポートから外れました。

主な機能リリース

R29 の主な機能リリースとしては以下の通りとなります。

  • MQTT Protocol のサポート
  • SAML 認証のサポート
  • Open Telemetory のサポート

それぞれの機能を詳しく見てみましょう

MQTT Protocol のサポート

NGINX Plus にて MQTT 3.1.1 と MQTT 5.0 をサポートするようになりました。

MQTT protocol は 短いメッセージを頻繁に送受信することを想定して作られたプロトコルとなり、主に IoT デバイスとサービス間のデータ交換用に使用されています。

これにより、NGINX Plus はクライアントとブローカーの間のプロキシとして、以下の機能を提供します。

  • MQTT ブローカーの負荷分散
  • セッションの持続性
  • TLS ターミネーション
  • クライアント証明書認証
  • CONNECT メッセージの解析と書き換え

サンプル設定

stream {
    mqtt_preread  on;    # mqtt の CONNECT メッセージからの情報取得を有効化

log_format mqtt '$remote_addr $protocol $status $mqtt_preread_clientid'   # $mqtt_preread_clientid で CONNECT メッセージから clientid を取得
}

SAML 認証のサポート

シングルサインオンでよく使われる SAML 2.0 をサポートするようになりました。

これにより、NIGNX Plus が SAML SP として機能しますので、NGINX 配下のアプリケーションに対してSAML によるシングルサインオンを提供することができるようになります。

なお、本機能は NGINX JavaScript (njs) フレームワークを使用しております。 利用方法や詳細は、以下をご確認ください。

https://github.com/nginxinc/nginx-saml/

Open Telemetry のサポート

標準的なテレメトリデータ収集のフレームワークである Open Telemetry に対応しました。 NGINX Plus では、アプリケーションのリクエスト/レスポンスに関するテレメトリを収集できます。

なお、3rd party のモジュールを使用することで Open Telemetry に対応することはできますが、NGINX Plus では以下のようなメリットがあります。

  • パフォーマンスの向上 3rd party のモジュールでは NGINX のリクエスト処理性能が著しく低下する場合がありますが、NGINX Plus であれば、この処理性能の低下を抑えることができます。

  • プロビジョニングが容易 3rd party のモジュールでは Source code からのビルドが必要であったりしますが、NGINX Plus であれば、パッケージをインストールして load するだけで使用可能となります。

サンプル設定

load_module modules/ngx_otel_module.so;   # Open Telemetry モジュールを読み込む

http {

    otel_exporter {
        endpoint localhost:4317;   # テレメトリの宛先
    }

    server {
        listen 127.0.0.1:8080;

        location / {
            otel_trace         on;     # トレース情報の取得
            otel_span_name     app1;

            proxy_pass http://backend;
        }
    }
}

そのほかの機能追加

これまでに紹介した機能以外にも多数の機能追加が含まれています。

  • QUIC+HTTP/3 対応 ※ 実験的な対応であり、本番環境での利用は推奨されておりません
  • Open ID Connect にて Access Token をサポートしました
  • internal_redirect ディレクティブが追加されました
  • デフォルトで TLS1.3 が有効になりました
  • いくつかのエラーログのログレベルが Crit から Info に変更されました

NGINX Plus R29 のより詳しい情報については、以下のメーカーサイトにも記載されています。

NGINX Plus release Announcing NGINX Plus R29

まとめ

NGINX Plus R29 では、MQTT、SAML、Open Telemetry とトレンドのプロトコルへのサポートが追加され、より便利になったと思います。 機能追加以外にも、バグ修正も含まれておりますので、ぜひ、R29 を使ってみてください。

今回はここまでとなります。

この記事に関連する記事