2026年8月11日

2026年8月11日

Nginx Plusと無料版(オープンソース版)Nginxの違い|機能・ライセンス・選び方

Nginx(エンジンエックス)には、無料で使えるオープンソース版と、F5 社が販売する商用版の NGINX Plus があります。NGINX Plus はオープンソース版をもとに、負荷分散や監視、認証などの機能と、F5 のサポートを加えたものです。

この記事では、どの機能が NGINX Plus だけのものかを、nginx.org のドキュメント(各モジュールのページに「commercial subscription(商用サブスクリプション)の一部」と明記されています)と、NGINX Plus の公式ドキュメントで確認して整理します。内容は2026年11月時点のものです。Plus だけだった機能がオープンソース版に移ることが続いているため、導入を検討するときは最新のドキュメントを確かめてください。

結論: WordPress サイトの多くは無料版で足りる

WordPress を1台、または数台の Web サーバーで動かす規模なら、オープンソース版で十分なことがほとんどです。キャッシュ、HTTPS、HTTP/2・HTTP/3、レート制限、基本の負荷分散は、無料版でも使えます。

NGINX Plus を検討するのは、たとえば次のような場合です。

  • 多数のアプリケーションサーバーに負荷分散していて、応答しないサーバーを、利用者のリクエストが失敗する前に自動で外したい(アクティブヘルスチェック)
  • 設定ファイルを書き換えて再読み込みせずに、API でサーバーの追加・削除をしたい
  • 詳しい統計を API や監視画面で見たい
  • JWT や OpenID Connect による認証を Nginx で行いたい
  • 複数台の Nginx の間で、セッションなどの状態を同期したい
  • ソフトウェアのサポート契約が必要

NGINX Plus だけの主な機能

nginx.org のドキュメントで、商用サブスクリプションの一部とされている主なモジュールと機能です。

機能 モジュール・ディレクティブ 内容
アクティブヘルスチェック ngx_http_upstream_hc_module(health_check) 負荷分散先のサーバーに定期的に確認のリクエストを送り、異常なサーバーを外す
API ngx_http_api_module 負荷分散先のサーバーの追加・削除・設定変更を再読み込みなしで行う。統計を JSON で取得する
監視画面 ngx_http_api_module と付属の画面 接続数・応答・負荷分散先の状態などを画面で見る
キーと値の保存 ngx_http_keyval_module API から書き換えられるキーと値を、設定の中の変数として使う
JWT 認証 ngx_http_auth_jwt_module JSON Web Token を検証してアクセスを許可する
OpenID Connect ngx_http_oidc_module OpenID Connect によるログインを Nginx で行う
状態の同期 ngx_stream_zone_sync_module 複数台の Nginx の間で、共有メモリーの内容(sticky のセッションなど)を同期する
負荷分散の細かい制御 upstream の queue・ntlm・state、server の slow_start 空きを待つキュー、NTLM 認証の中継、サーバー一覧のファイル保存、復帰したサーバーへの段階的な振り分け

NGINX Plus のライセンスの管理と利用状況の報告には、ngx_mgmt_module を使います(次の節)。

最近オープンソース版に入った機能

以前は NGINX Plus だけだった機能のうち、次のものはオープンソース版でも使えるようになりました(nginx.org の変更履歴とドキュメントで確認)。

機能 オープンソース版で使えるようになった版
upstream の server の resolve(DNS の変化に合わせて負荷分散先を更新)と、upstream の中の resolver 1.27.3
セッションの固定(sticky)と、server の route・drain 1.29.6
応答時間を基準にした負荷分散(least_time) 1.31.0

ただし、ディストリビューションの標準のパッケージは、古い版のことがよくあります。nginx -v で版を確かめ、これらの機能を使うには、nginx.org が配布するパッケージで新しい版を入れます。

ライセンスと料金

  • NGINX Plus は有償のサブスクリプションです。料金は公開されておらず、F5 への問い合わせになります。公式サイトから試用版を申し込めます。
  • NGINX Plus R33(2024年11月)以降は、インスタンスごとに MyF5 から取得した JWT 形式のライセンスファイルが必要です。Linux では /etc/nginx/ に置きます。
  • 利用状況を F5 に定期的に報告する仕組みがあり、最初の報告が届かないと通信の処理を止めます。インターネットに出られない環境では、NGINX Instance Manager を経由して報告します。
  • 2026年10月時点のリリースは、従来の「R36」のような番号ではなく、PLS.37 という名前で、長期サポートの LTS と、新しい機能が入る CR の2系統があります。

オープンソース版は 2条項 BSD ライセンスで、無料で使えます。

無料版でできる代わりの設定

負荷分散先の異常を検出する(パッシブヘルスチェック)

オープンソース版でも、実際のリクエストが失敗したサーバーを一定時間外すことはできます。

upstream wp_backend {
    server 192.168.1.10 max_fails=3 fail_timeout=30s;
    server 192.168.1.11 max_fails=3 fail_timeout=30s;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://wp_backend;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 接続できない・応答が無いときは、次のサーバーで再試行する
        proxy_next_upstream error timeout;
    }
}
  • max_fails=3 fail_timeout=30s: 30秒の間に3回失敗したサーバーを、30秒間振り分けの対象から外します(既定は max_fails=1、fail_timeout=10s)。
  • 失敗を検出するのは利用者のリクエストなので、外される前に一部のリクエストは失敗した応答を受けます。この点が、確認のリクエストを自分で送る NGINX Plus のアクティブヘルスチェックとの違いです。

負荷分散の設定は「Nginx でロードバランサーを設定する」、振り分け方の違いは「Nginx の負荷分散のアルゴリズム」で説明しています。

接続数を見る(stub_status)

オープンソース版の ngx_http_stub_status_module で、接続数とリクエスト数の基本的な数字を見られます。Ubuntu・Debian のパッケージや nginx.org のパッケージには、このモジュールが組み込まれています(nginx -V の出力に --with-http_stub_status_module があれば使えます)。

server {
    listen 127.0.0.1:8080;

    location = /nginx_status {
        stub_status;
        allow 127.0.0.1;
        deny all;
    }
}
sudo nginx -t && sudo systemctl reload nginx
curl http://127.0.0.1:8080/nginx_status

Active connections(今の接続数)、受け付けた接続とリクエストの累計、読み込み中・書き込み中・待機中の接続数が表示されます。NGINX Plus の API のような、負荷分散先ごとの状態や応答コードの集計はありません。これらの数字を Zabbix や Prometheus などの監視ソフトで集めてグラフにする方法がよく使われます。

アクセス制限と認証

レート制限(limit_req)、接続数の制限(limit_conn)、BASIC 認証(auth_basic)、別のサーバーに認証を問い合わせる auth_request は、オープンソース版で使えます。WordPress のログイン画面の保護には、これらで足りることが多いです(「Nginx の limit_req でレート制限をする」)。

参考: NGINX Plus のアクティブヘルスチェックの書き方

NGINX Plus では、負荷分散先の状態を共有メモリーに置く zone を指定し、location に health_check を書きます。オープンソース版では health_check は使えず、設定の検査でエラーになります。

upstream wp_backend {
    zone wp_backend 64k;
    server 192.168.1.10;
    server 192.168.1.11;
}

server {
    listen 80;

    location / {
        proxy_pass http://wp_backend;
        # 5秒ごとに / を確認し、3回続けて失敗したら外し、2回続けて成功したら戻す
        health_check interval=5 fails=3 passes=2 uri=/;
    }
}

注意事項

  • この記事の機能の分け方は2026年11月時点のものです。nginx.org の各モジュールのページで、「commercial subscription」の記載があるかを確かめてください。
  • オープンソース版でも、新しい機能は新しい版にしか入っていません。使う前に nginx -v で版を確かめます。
  • NGINX Plus の試用や購入の前に、ライセンスファイルの配置と利用状況の報告の仕組みが、自分の環境(インターネットに出られるか)で動くかを確かめます。

まとめ

  • NGINX Plus は、オープンソース版にアクティブヘルスチェック、API と監視画面、JWT・OpenID Connect の認証、状態の同期などと、F5 のサポートを加えた商用版
  • resolve(1.27.3)、sticky(1.29.6)、least_time(1.31.0)は、オープンソース版でも使えるようになった
  • NGINX Plus はインスタンスごとのライセンスファイルと利用状況の報告が必要で、料金は F5 への問い合わせ
  • WordPress を数台で動かす規模なら、オープンソース版の max_fails・fail_timeout、stub_status、limit_req で足りることが多い

お気軽にご相談ください

お見積りへ お問い合わせへ
▲