HOME » ドキュメント » KUSANAGIのWebサーバ構成

KUSANAGIのWebサーバ構成

KUSANAGIではWebサーバとしてNginxとApache HTTP Serverを選択することができます。
また、両者を組み合わせたWebサーバ構成を行うことができます。
ここでは各Webサーバ構成をそれぞれ解説します。

  1. nginxモード
  2. httpdモード
  3. nginxリバースプロキシ + httpdモード

Webサーバ構成の機能比較

各Webサーバ構成で利用できる機能の違いを表にまとめています。
各機能の詳細については、後述の各モードの説明や、kusanagi コマンドを参照してください。

機能1. nginxモード2. httpdモード3. nginxリバースプロキシ + httpdモード
bcacheWordPressのプロファイルで使用できますWordPressのプロファイルで使用できますWordPressのプロファイルで使用できます
fcache全てのプロファイルで使用できます使用できません全てのプロファイルで使用できます1
ratelimit全てのプロファイルで使用できます使用できません全てのプロファイルで使用できます
.htaccessファイル使用できません全てのプロファイルで使用できます全てのプロファイルで使用できます
HTTP/3全てのプロファイルで使用できます使用できません全てのプロファイルで使用できます
WAFNAXSIを使用mod_securityを使用mod_securityを使用

Webサーバ構成の指定と変更

Webサーバ構成の初期設定

Webサーバ構成の指定は kusanagi init コマンド、および、各 kusanagi コマンドで行うことができます。

3. nginxリバースプロキシ + httpdモード は kusanagi init コマンドで指定することはできません。1. nginxモード で初期化した後に、対応する kusanagi コマンドでWebサーバの構成を変更します。

kusanagi コマンド1. nginxモード2. httpdモード3. nginxリバースプロキシ + httpdモード
kusanagi init コマンド--nginxXXXオプション
(XXXにはバージョンが入ります)
--httpdXXオプション
(XXにはバージョンが入ります)
(kusanagi init コマンドでは指定できません)
対応する kusanagi コマンドkusanagi nginx コマンドkusanagi httpd コマンドkusanagi httpd-behind-nginx コマンド

Webサーバ構成の変更と再起動

それぞれのWebサーバ構成で動作している時に、別のWebサーバ構成に対応する kusanagi コマンドを実行することで、Webサーバ構成を変更できます。例えば、Webサーバ構成が 1. nginxモード で動作している時に、 kusanagi httpd コマンドを実行すると 2. httpdモード に変更します。

それぞれのWebサーバ構成で動作している時に、同じWebサーバ構成に対応する kusanagi コマンドを実行すると、そのWebサーバ構成のまま各Webサーバを再起動します。例えば、Webサーバ構成が 1. nginxモード で動作している時に、 kusanagi nginx を実行すると nginx を再起動します。3. nginxリバースプロキシ + httpdモード のように、複数のWebサーバが動作する構成の場合には、全てのWebサーバを再起動します。

kusanagi コマンド1. nginxモード2. httpdモード3. nginxリバースプロキシ + httpdモード
kusanagi nginx コマンド再起動1. nginxモード に変更1. nginxモード に変更
kusanagi httpd コマンド2. httpdモード に変更再起動2. httpdモード に変更
kusanagi httpd-behind-nginx コマンド3. nginxリバースプロキシ + httpdモード に変更3. nginxリバースプロキシ + httpdモード に変更再起動

各 kusanagi コマンドで、Webサーバの再起動やWebサーバ構成を変更する際には、設定ファイルの検証を行ってエラーがない場合にのみ再起動や変更を行います。設定ファイルにエラーがあった場合には再起動や変更を行わず、現在のWebサーバ構成をそのまま継続します。

Webサーバ構成のリロード

各 kusanagi コマンドに --reload オプションをつけて実行することで、Webサーバ構成の設定ファイルのリロードを行えます。3. nginxリバースプロキシ + httpdモード のように、複数のWebサーバが動作する構成の場合には、全てのWebサーバの設定ファイルをリロードします。この際も、設定ファイルの検証を行ってエラーがない場合にのみリロードを行います。設定ファイルにエラーがあった場合にはリロードを行わず、現在のWebサーバ構成をそのまま継続します。

Webサーバ構成の設定ファイルの検証

各 kusanagi コマンドに --test オプションをつけて実行することで、Webサーバ構成の設定ファイルの検証を行えます。3. nginxリバースプロキシ + httpdモード のように、複数のWebサーバが動作する構成の場合には、全てのWebサーバの設定ファイルを検証します。

1. nginxモード

Nginxを単体のWebサーバとして使用するシンプルなモードです。

Nginxがポート80/443でリクエストを受け付けて、php-fpmによりPHPの実行処理を行います。
CGI (perl) も同様にリクエストを受け付けて、fcgiwrapによって実行処理を行います。
WordPressのプロファイルではbcacheを利用できます。また、全てのプロファイルでfcache、ratelimit、HTTP/3を利用できます。

Nginxのサービス名は nginxXXX (XXXにはバージョンが入ります) です。なお、KUSANAGI 9.5.0 より前のバージョンでは nginx (固定) です。

動作の確認

kusanagi status コマンドで以下のように表示されます。

*** (active) nginx : nginx129 ***
* nginx129.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx129.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-08-06 10:24:07 JST; 6 days ago

ログの場所

  • /home/kusanagi/PROFILE/log/nginx
    • httpはaccess.log/error.logに出力されます。
    • httpsはssl_access.log/ssl_error.logに出力されます。
  • /var/opt/kusanagi/log/nginx

設定ファイルの場所

  • /etc/opt/kusanagi/nginx/conf.d

2. httpdモード

Apache HTTP Serverを単体のWebサーバとして使用するモードです。
.htaccessファイルなどのApache HTTP Server固有の機能が必要な場合に使用します。

Apache HTTP Serverがポート80/443でリクエストを受け付けて、php-fpmによりPHPの実行処理を行います。なお、KUSANAGIではmod_phpを使用していません。
CGI (perl) も同様にリクエストを受け付けて、fcgiwrapによって実行処理を行います。
WordPressのプロファイルではbcacheを利用できます。なお、全てのプロファイルでfcache、ratelimit、HTTP/3を利用できません。

Apache HTTP Serverのサービス名は httpd (固定) です。

動作の確認

kusanagi status コマンドで以下のように表示されます。

*** (active) httpd : httpd24 ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-08-06 10:24:07 JST; 6 days ago

ログの場所

  • /home/kusanagi/PROFILE/log/httpd
    • httpはaccess.log/error.logに出力されます。
    • httpsはssl_access.log/ssl_error.logに出力されます。
  • /var/opt/kusanagi/log/httpd

設定ファイルの場所

  • /etc/opt/kusanagi/httpd/conf.d

3. nginxリバースプロキシ + httpdモード

Nginxがリバースプロキシとして動作して、その裏でApache HTTP Serverを動作するモードです。
nginxのみでサポートされているfcacheと、.htaccessファイルなどのApache HTTP Server固有の機能を組み合わせて使用できます。

Nginxがポート80/443でリクエストを受け付けて、Apache HTTP Serverにリバースプロキシします。
Apache HTTP Serverがポート8000でリクエストを受け付けて、php-fpmによりPHPの実行処理を行います。
CGI (perl) も同様にリクエストを受け付けて、fcgiwrapによって実行処理を行います。
WordPressのプロファイルではbcacheを利用できます。また、全てのプロファイルでfcache、ratelimit、HTTP/3を利用できます。

なお、fcacheについては注意点があります。.htaccessファイルでIPアドレスなどを元にアクセス制限を行っている場合は、fcacheを使用しないかキャッシュしないように設定してください。この制限は一般的なCDNと同じです。

Nginxのサービス名は nginxXXX@with_httpd (XXXにはバージョンが入ります) です。
Apache HTTP Serverのサービス名は httpd@with_nginx (固定) です。

動作の確認

kusanagi status コマンドで以下のように表示されます。

*** (active) nginx : nginx129 ***
* nginx129@with_httpd.service - The NGINX HTTP and reverse proxy server (with_httpd)
Loaded: loaded (/usr/lib/systemd/system/nginx129@.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-08-06 10:24:07 JST; 6 days ago

*** (active) httpd : httpd24 ***
* httpd@with_nginx.service - The Apache HTTP Server (with_nginx)
Loaded: loaded (/usr/lib/systemd/system/httpd@.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2025-08-06 10:24:07 JST; 6 days ago

ログの場所

  • nginx (リバースプロキシ)
    • /home/kusanagi/PROFILE/log/nginx
      • httpはaccess.log/error.logに出力されます。
      • httpsはssl_access.log/ssl_error.logに出力されます。
    • /var/opt/kusanagi/log/nginx
  • httpd
    • /home/kusanagi/PROFILE/log/httpd
      • http/httpsに関わらずaccess.log/error.logに出力されます。
    • /var/opt/kusanagi/log/httpd

設定ファイルの場所

  • nginx
    • /etc/opt/kusanagi/nginx/conf.with_httpd.d
      • /etc/opt/kusanagi/nginx/conf.d の設定ファイルから自動生成されます。そのため、直接更新しないでください。
  • httpd
    • /etc/opt/kusanagi/httpd/conf.with_nginx.d
      • /etc/opt/kusanagi/httpd/conf.d の設定ファイルから自動生成されます。そのため、直接更新しないでください。
  1. .htaccessファイルでIPアドレスなどを元にアクセス制限を行っている場合は、fcacheを使用しないかキャッシュしないように設定してください。 ↩︎