ネットワーク

NGINX Plus Release 30 (R30) のリリースについて

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

こんにちは。 narai です。みなさん NGINX 使ってますか?

さて、2023年 8月 15日 に NGINX Plus の最新版 (R30) がリリースされましたので、追加された機能をまとめてみました。

サポート OS について

NGINX Plus R30 でサポートされているディストリビューションは以下の通りです。

  • AlmaLinux 8, 9
  • Alpine Linux 3.16, 3.17, 3.18
  • Amazon Linux 2 LTS, 2023
  • CentOS 7.4+
  • Debian 11, 12
  • 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

R29 からの変更点としては、Alpine Linux 3.14 , ubuntu 18.04 LTS がサポート対象から除外され、Alpine Linux 3.15 が次期バージョンでサポート対象外になる予定です。

これらのディストリビューションをご利用されている場合はご注意ください。

重要な変更点

R30 では R29 から以下の変更点がございます。

詳細は以下の通りです。

http2 の有効化の設定方法が変わります

R29 までの設定

server {
      listen 443 http2;

R30 での設定

server {
      listen 443;
      http2 on;

R30 ではこれまでの記述方法も利用することができますが、後のバージョンで廃止されるため、なるべく早い記述変更をお勧めいたします。

主な機能リリース

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

それぞれの機能について、詳しく解説いたします。

サポートへ問い合わせする際の情報収集スクリプトが提供されました

トラブルシュートに必要なデータを一度に取得できる診断パッケージが公開されました。
この診断パッケージは R30 以前の NGINX Plus でも利用可能となります。

診断パッケージの使い方

  1. ここから診断パッケージスクリプトをダウンロードします
  2. 診断パッケージスクリプトを NGINX Plus が動作しているサーバーにアップロードします
  3. スクリプトに実行権限を与えます
    # chmod 755 nginx-supportpkg.sh
  4. スクリプトを実行します (スクリプトの実行には root 権限が必要となります)
    ※ スクリプトは優先度を下げて実行されます。
    # sudo ./nginx-supportpkg.sh
  5. スクリプトと同じディレクトリにサポートファイルが作成されます
    support-pkg-1692178750.tar.gz

QUIC+HTTP/3 をサポートしました

NGINX Plus R29 で実験的に導入されていた機能の正式リリースとなります。
モジュールの追加は不要で以下のように、listenadd_header を設定することで、QUIC+HTTP/3 に対応することができます。

server {
    listen 443 quic reuseport;
    listen 443 ssl;

    ssl_certificate conf.d/ssl/server.crt;
    ssl_certificate_key conf.d/ssl/server.key;

    location / {
        add_header Alt-Svc 'h3=":443"; ma=86400';
        root /usr/share/nginx/content;
    }
}

curl を使用して HTTP/3 のリクエストを投げてみます。

# curl -v -L -s -k --http3 https://nginx-r30:443

*   Trying 172.20.0.3:443...
* Connected to nginx-r30 (172.20.0.3) port 443 (#0)
* using HTTP/3
* Using HTTP/3 Stream ID: 0 (easy handle 0x561d8139d410)
> GET / HTTP/3
> Host: nginx-r30
> User-Agent: curl/8.1.2-DEV
> Accept: */*
> 
< HTTP/3 200 
< server: nginx/1.25.1
< date: Tue, 22 Aug 2023 08:51:52 GMT
< content-type: text/html
< content-length: 202
< last-modified: Fri, 18 Aug 2023 13:09:30 GMT
< alt-svc: h3=":443"; ma=86400
< 
{ [202 bytes data]
* Connection #0 to host nginx-r30 left intact

NGINX Plus web Page

ちゃんと、HTTP/3 で通信できていることが確認できました。

API のバージョンが 9 になり、Worker プロセル毎のコネクション情報が取得できるようになりました

API バージョンが 8 から 9 になり、worker process 毎のコネクション情報が確認できるようになりました。
これにより、worker_connections ディレクティブを適切にチューニングできる
ようになりました。

# curl http://localhost:8080/api/9/workers/0

{
    "id":0,
    "pid":72,
    "connections":{
        "accepted":38,
        "dropped":0,
        "active":1,
        "idle":6
        },
    "http":{
        "requests":{
            "total":2007,
            "current":1
        }
    }
}

また、dashboard からも worker process 毎のコネクション情報が確認できるようになりました。

そのほかの機能追加

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

  • DNS リロードが最適化されました
  • MQTT プロトコルの処理が最適化されました

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

NGINX Plus release Announcing NGINX Plus R30

まとめ

NGINX Pus R30 ではついに HTTP/3 を正式にサポートしました。
追加モジュールの導入が不要なのも便利ですね。
また、診断パッケージも必要な情報を丸っと取得できるので、何かあったら取得しておけば良いですね。

機能追加以外にも、バグ修正も含まれておりますので、ぜひ、R30 を使ってみてください。

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

この記事に関連する製品・サービス

この記事に関連する記事