サーバーチューニング
目次
一般
接続チューニング
要求/応答のチューニング
静的ファイル配信の最適化
GZIP/Brotli圧縮
SSLグローバル設定
HTTP3/QUIC
デフォルトのSHMディレクトリ
説明
共有メモリのデフォルトディレクトリを指定されたパスに変更します。 ディレクトリが存在しない場合は作成されます。 特に指定のない限り、すべてのSHMデータはこのディレクトリに保存されます。
構文
パス
PROXYプロトコル
説明
PROXYプロトコルを使用してこのサーバーと通信するフロントエンドプロキシのIP/サブネットのリストです。設定すると、サーバーはリスト内のIP/サブネットからの受信接続にPROXYプロトコルを使用し、PROXYプロトコルを使用できない場合は通常の接続にフォールバックします。
HTTP、HTTPS、HTTP2、およびwebsocket接続に適用されます。
構文
IPアドレスまたはサブネットワークのカンマ区切りリスト。
最大接続数
説明
サーバーが受け入れることができる同時接続の最大数を指定します。 これには、プレーンTCP接続とSSL接続の両方が含まれます。 最大同時接続制限に達すると、サーバーはアクティブな要求が完了するとキープアライブ接続を閉じます。
構文
整数
ヒント
Information サーバーが "root"ユーザーによって起動されると、サーバーはプロセスごとのファイル記述子の制限を自動的に調整しようとしますが、失敗した場合は手動でこの制限を増やす必要があります。
最大SSL接続数
説明
サーバーが受け入れる同時SSL接続の最大数を指定します。 同時SSL接続と非SSL接続の合計が最大接続数で指定された制限を超えることはできないため、許可される同時SSL接続の実際の数はこの制限より小さくなければなりません。
構文
整数
コネクションタイムアウト(秒)
説明
1つの要求の処理中に許容される最大接続アイドル時間を指定します。 この時間の間、接続がアイドル状態の場合、つまりI/Oアクティビティがない場合は、接続が閉じられます。
構文
整数
ヒント
[セキュリティ]潜在的なDoS攻撃の間に不在接続を回復するのに役立つように、この値を低く設定します。
参照
最大キープアライブ要求
説明
キープアライブ(永続的)セッションを介して処理できる要求の最大数を指定します。 この制限に達すると接続は終了します。 バーチャルホストごとにこの制限を設定することもできます。
構文
整数
ヒント
[パフォーマンス]適度に高い値に設定します。 "1"または "0"の値はキープアライブを無効にします。
参照
Virtual Host 最大Keep-Aliveリクエスト数
キープアライブタイムアウト(秒)
説明
キープアライブ接続からの要求間の最大アイドル時間を指定します。 この期間中に新しい要求が受信されない場合、接続は閉じられます。 この設定は、HTTP/1.1接続にのみ適用されます。 HTTP/2接続は、設計によって長いキープアライブタイムアウトを持ち、この設定の影響を受けません。
構文
整数
ヒント
[セキュリティ & パフォーマンス]ロードする必要がある単一のページで参照されるアセットが多くある場合、クライアントからの後続のリクエストを待機するのに十分な時間だけこの値を設定することをお勧めします。 キープアライブ接続で次のページが配信されることを期待して、これを長く設定しないでください。 多くのアイドル状態のキープアライブ接続を維持することはサーバーリソースの浪費であり、(D)DoS攻撃によって活用される可能性があります。 2-5秒はほとんどのアプリケーションにとって妥当な範囲です。 LiteSpeedは非キープアライブ環境で非常に効率的です。
送信バッファサイズ(バイト)
説明
各TCPソケットの送信バッファサイズ。 512Kは許容されるバッファの最大サイズです。
構文
整数
ヒント
[パフォーマンス]オペレーティングシステムのデフォルトのバッファサイズを使用するには、この値を "未設定"のままにするか、0に設定することをお勧めします。
[パフォーマンス] Webサイトで大きな静的ファイルが使用されている場合は、送信バッファサイズを大きくしてパフォーマンスを向上させてください。
[パフォーマンス]これを低い値に設定すると、ソケットあたりのスループットとメモリ使用量が減少し、メモリがボトルネックになった場合にサーバーがより多くの同時ソケットを持つことが可能になります。
受信バッファサイズ(バイト)
説明
各TCPソケットの受信バッファーサイズ。 512Kは許容されるバッファの最大サイズです。
構文
整数
ヒント
[パフォーマンス]オペレーティングシステムのデフォルトのバッファサイズを使用するには、この値を "未設定"のままにするか、0に設定することをお勧めします。
[パフォーマンス]大きい受信バッファは、大きなペイロード、すなわちファイルアップロードで着信要求を処理するときのパフォーマンスを向上させます。
[パフォーマンス]これを低い値に設定すると、ソケットあたりのスループットとメモリ使用量が減少し、メモリがボトルネックになった場合にサーバーがより多くの同時ソケットを持つことが可能になります。
最大リクエストURL長(バイト)
説明
リクエストURLの最大サイズを指定します。URLは、クエリ文字列を含む、サーバーリソースへのアクセスに使用される完全なテキストアドレスです。ハードリミットは65530バイトです。64K(6バイト超過)など、これより大きい値は65530が使用されたものとして扱われます。
デフォルト値:8192または8K。
構文
整数
ヒント
[セキュリティ][パフォーマンス] メモリ使用量を減らし、不正なリクエストやDoS攻撃を識別しやすくするため、適度に低く設定してください。
POSTの代わりにHTTP GETメソッドで大きなクエリ文字列を使用しない限り、ほとんどのWebサイトでは2-3Kで十分です。
最大リクエストヘッダーサイズ(バイト)
説明
リクエストURLを含むHTTPリクエストヘッダーの最大サイズを指定します。ハードリミットは131072バイト、つまり128Kです。
デフォルト値:32768または32K
構文
整数
ヒント
[セキュリティ][パフォーマンス] メモリ使用量を減らし、不正なリクエストやDoS攻撃を識別しやすくするため、適度に低く設定してください。
通常の状況では、ほとんどのWebサイトで4-8Kで十分です。
最大リクエストボディサイズ(バイト)
説明
HTTPリクエスト本文の最大サイズを指定します。 32ビットOSの場合、2GBはハード制限です。 64ビットOSの場合、実質的に無制限です。
構文
整数
ヒント
[セキュリティ] DoS攻撃を防ぐには、この制限を実際に必要なものだけに制限してください。 スワッピング空間には、この制限に対応するための十分な空き領域が必要です。
最大動的レスポンスヘッダーサイズ(バイト)
説明
動的に生成されるレスポンスの最大ヘッダーサイズを指定します。ハードリミットは131072バイト、つまり128Kです。
デフォルト値:32768または32K
構文
整数
ヒント
[パフォーマンス] 外部アプリケーションによって動的に生成される不正なレスポンスを認識しやすくするため、適度に低く設定してください。
最大動的レスポンスボディサイズ(バイト)
説明
動的に生成されるレスポンスの最大ボディサイズを指定します。
構文
整数
ヒント
[パフォーマンス] 不正なレスポンスを識別しやすくするため、制限を適度に低く設定してください。不正なスクリプトに無限ループが含まれ、無限大のレスポンスにつながることは珍しくありません。
最大キャッシュサイズの小さいファイルサイズ(バイト)
説明
事前に割り当てられたメモリバッファにキャッシュされる最大の静的ファイルを指定します。 静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 サイズがこの設定より小さいファイルはメモリバッファキャッシュから提供されます。 サイズがこの設定より大きく、最大MMAPファイルサイズ(バイト)より小さいファイルは、メモリマップドキャッシュから処理されます。 最大MMAPファイルサイズ(バイト)より大きいサイズのファイルは、プレーン・リード/ライトまたはsendfile()を介して処理されます。 メモリバッファキャッシュから4Kより小さい静的ファイルを提供することが最適です。
構文
整数
最大MMAPファイルサイズ(バイト)
説明
メモリマップされる最大の静的ファイル(MMAP)を指定します。 静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 サイズが最大キャッシュサイズの小さいファイルサイズ(バイト)より小さいファイルはメモリバッファキャッシュから提供されます。 サイズが最大キャッシュサイズの小さいファイルサイズ(バイト)よりも大きいが最大MAPファイルサイズより小さいファイルは、メモリマップドキャッシュから提供されます。 最大MMAPファイルサイズよりも大きいファイルは、プレーンな読み取り/書き込みまたはsendfile()を介して提供されます。 サーバは32ビットのアドレス空間(2GB)を持っているので、非常に大きなファイルをメモリに格納することは推奨されません。
構文
整数
sendfile()を使用する
説明
静的ファイルを提供するためにsendfile()システムコールを使用するかどうかを指定します。 静的ファイルは、メモリバッファキャッシュ、メモリマップキャッシュ、プレーンリード/ライト、およびsendfile()の4つの方法で提供できます。 最大キャッシュサイズの小さいファイルサイズ(バイト)より小さいファイルはメモリバッファキャッシュから提供されます。 最大キャッシュサイズの小さいファイルサイズ(バイト)より大きいが、最大MMAPファイルサイズ(バイト)より小さいファイルは、メモリマップドキャッシュから提供されます。 最大MMAPファイルサイズ(バイト)より大きいファイルは、プレーンな読み取り/書き込みまたはsendfile()で処理されます。 Sendfile()は、非常に大きな静的ファイルを処理するときにCPU使用率を大幅に下げることができる「ゼロコピー」システムコールです。 Sendfile()は最適化されたネットワークカードカーネルドライバを必要とするため、一部の小規模ベンダーのネットワークアダプタには適していない可能性があります。
構文
ラジオボタンから選択
非同期I/O (AIO)を使用する
説明
静的ファイルを提供するために非同期I/Oを使用するかどうか、および使用するAIO実装を指定します。オプションLINUX AIOとio_uringはLinuxマシンでのみ使用できます。
デフォルト値:No
構文
ドロップダウンリストから選択
ヒント
[パフォーマンス] I/O待ち時間が長いサーバーでは、AIOがパフォーマンス向上に役立つ場合があります。
[注意] io_uringが選択されていても現在のマシンでサポートされていない場合、代わりにLinux AIOが使用されます。
参照
AIOブロックサイズ
説明
AIOの送信ブロックサイズを指定します。 このブロックサイズに処理中の合計ファイル数を掛けた値は、サーバーの物理メモリより小さくする必要があります。そうでない場合、AIOは役に立ちません。サーバーに十分なメモリがある場合は、より大きなサイズを選択できます。
デフォルト値:128K
構文
ドロップダウンリストから選択
参照
ファイルETag
説明
ファイルのinode、last-modified time、およびsize属性を使用するかどうかを指定します。 静的ファイル用のETag HTTP応答ヘッダーを生成します。 3つの属性はすべてデフォルトで有効になっています。 ミラー化されたサーバーから同じファイルを提供する予定の場合は、iノードを含めないでください。 それ以外の場合、1つのファイルに対して生成されるETagは、異なるサーバーで異なります。
構文
チェックボックスから選択
圧縮を有効にする
説明
静的レスポンスと動的レスポンスの両方に対するGZIP/Brotli圧縮を有効にします。
デフォルト値:Yes
構文
ラジオボックスから選択
ヒント
[パフォーマンス] ネットワーク帯域幅を節約するために有効にします。html、css、javascriptファイルなどのテキストベースのレスポンスが最も効果を受け、平均で元のサイズの半分まで圧縮できます。
圧縮可能なタイプ
説明
圧縮を許可するMIMEタイプを指定します。この設定を未設定にするかdefaultを入力すると、ほとんどのMIMEタイプをすでにカバーするサーバー組み込みのデフォルトリストを使用します。
デフォルト値: text/*,application/x-javascript,application/javascript,application/xml,image/svg+xml,application/rss+xml, application/json,application/vnd.ms-fontobject,application/x-font,application/x-font-opentype, application/x-font-truetype,application/x-font-ttf,font/eot,font/opentype,font/otf,font/ttf,image/x-icon, image/vnd.microsoft.icon,application/xhtml+xml
構文
MIMEタイプリストをカンマ区切りで指定します。text/*、!text/jsなど、ワイルドカード"*"と否定記号"!"を使用できます。
例
ヒント
[パフォーマンス] GZIP/Brotli圧縮の効果があるタイプのみを許可してください。gif/png/jpeg画像やflashファイルなどのバイナリファイルは、圧縮の効果がありません。
動的GZIP圧縮を有効にする
説明
動的に生成されるレスポンスのGZIP圧縮を制御します。
この設定を有効にするには、圧縮を有効にするをYesに設定する必要があります。
デフォルト値:Yes
構文
ラジオボックスから選択
ヒント
[パフォーマンス] 動的レスポンスを圧縮するとCPUとメモリの使用量は増えますが、ネットワーク帯域幅を節約できます。
GZIP圧縮レベル(動的コンテンツ)
説明
動的コンテンツに適用するGZIP圧縮レベルを指定します。範囲は1(最低)から9(最高)です。
この設定は、圧縮を有効にすると動的GZIP圧縮を有効にするが有効な場合にのみ有効です。
デフォルト値:6
構文
1から9までの数値。
ヒント
[パフォーマンス] 圧縮レベルを高くすると、より多くのメモリとCPUサイクルを使用します。マシンに余力がある場合は、より高いレベルに設定できます。6と9の間に大きな差はありませんが、9ではCPUサイクルをかなり多く使用します。
静的ファイルの自動更新
説明
圧縮可能な静的ファイルについて、サーバーがGZIP圧縮版を自動的に作成/更新するかどうかを指定します。Yesに設定されている場合、圧縮可能なタイプにリストされたMIMEタイプのファイルが要求されると、サーバーは圧縮ファイルのタイムスタンプに応じて、そのファイルに対応する圧縮版を作成または更新できます。この圧縮ファイルは静的キャッシュディレクトリの下に作成されます。ファイル名は元のファイルパスのMD5ハッシュに基づきます。
デフォルト値:Yes
構文
ラジオボックスから選択
GZIP圧縮レベル(静的ファイル)
説明
静的ファイルに適用するGZIP圧縮レベルを指定します。範囲は1(最低)から9(最高)です。
この設定は、圧縮を有効にすると静的ファイルの自動更新が有効な場合にのみ有効です。
デフォルト値:6
構文
1から9までの数値。
Brotli圧縮レベル(静的ファイル)
説明
静的ファイルに適用するBrotli圧縮レベルを指定します。範囲は0(無効)から11(最高)です。
0に設定すると、Brotli圧縮はグローバルに無効になります。
デフォルト値:5
構文
0から11までの数値。
ヒント
[パフォーマンス] ネットワーク帯域幅を節約します。html、css、javascriptファイルなどのテキストベースのレスポンスが最も効果を受け、平均で元のサイズの半分まで圧縮できます。
静的キャッシュディレクトリ
説明
静的コンテンツ用の圧縮ファイルを保存するために使用するディレクトリのパスを指定します。
デフォルト値:スワッピングディレクトリ。
構文
ディレクトリパス
最大静的ファイルサイズ(バイト)
説明
サーバーが自動的に圧縮ファイルを作成する静的ファイルの最大サイズを指定します。
デフォルト値:10M
構文
1K以上のバイト数。
ヒント
[パフォーマンス] 大きなファイルに対してサーバーが圧縮ファイルを作成/更新することは推奨されません。圧縮はサーバープロセス全体をブロックし、圧縮が完了するまで以降のリクエストを処理できません。
最小静的ファイルサイズ(バイト)
説明
サーバーが対応する圧縮ファイルを作成する静的ファイルの最小サイズを指定します。
デフォルト値:200
構文
200以上のバイト数。
ヒント
Information 帯域幅の節約はごくわずかなため、非常に小さいファイルを圧縮する必要はありません。
SSL強力なDHキー
説明
SSLハンドシェイクに2048または1024ビットのDHキーを使用するかどうかを指定します。 「Yes」に設定すると、2048ビットのSSLキーと証明書に2048ビットのDHキーが使用されます。 他の状況でも1024ビットのDHキーが引き続き使用されます。 デフォルトは「はい」です。
以前のバージョンのJavaでは、1024ビット以上のDHキーサイズはサポートされていません。 Javaクライアントの互換性が必要な場合は、これを「いいえ」に設定する必要があります。
構文
ラジオボタンから選択
複数のSSL証明書を有効にする
説明
リスナー/バーチャルホストが複数のSSL証明書を設定できるようにします。 複数の証明書が有効な場合、証明書/キーは命名規則に従うことが想定されます。 証明書の名前がserver.crtの場合、その他の可能な証明書名はserver.crt.rsa、server.crt.dsa、server.crt.eccです。 「未設定」の場合、デフォルトは「いいえ」です。
構文
ラジオボタンから選択
セッションキャッシュを有効にする
説明
OpenSSLのデフォルト設定を使用してセッションIDキャッシュを有効にします。バーチャルホスト設定を有効にするには、サーバーレベル設定を"Yes"に設定する必要があります。
デフォルト値:
サーバーレベル:Yes
VHレベル:Yes
構文
ラジオボックスから選択
SSLセッションチケットキーファイル
説明
SSLチケットキーを管理者が作成または維持できるようにします。 ファイルの長さは48バイトでなければなりません。 このオプションを空のままにすると、ロードバランサは独自のキーセットを生成してローテーションします。
重要:前方秘匿性を維持するには、SSLセッションチケットの有効期間秒ごとにキーを変更することを強くお勧めします。 これができない場合は、このフィールドを空のままにすることをお勧めします。
構文
パス
OCSPプロキシ
説明
OCSP検証用のプロキシサーバーアドレスとして使用されるソケットアドレスです。プロキシを使用しない場合は、この設定を未設定のままにしてください。
デフォルト値:未設定
構文
ソケットアドレス
厳格なSNI証明書
説明
専用のバーチャルホスト証明書設定を厳格に要求するかどうかを指定します。有効にすると、専用の証明書設定がないバーチャルホストへのSSL接続は、デフォルトの包括証明書を使用する代わりに失敗します。
デフォルト値:No
構文
ラジオボックスから選択
ACMEによるAutoCert
説明
Automatic Certificate Management Environment(ACME)認証プロトコルを使用して、SSL証明書を自動的に生成および更新します(設定済みの場合)。詳細はこちらを参照してください:
自動SSL証明書(ACME)
サーバーレベルでDisabledに設定すると、この設定はサーバー全体で無効になります。それ以外の場合、サーバーレベル設定はバーチャルホストレベルで上書きできます。
デフォルト値:
サーバーレベル:Off
VHレベル:サーバーレベル設定を継承
構文
ドロップダウンリストから選択
HTTP3/QUICを有効にする
説明
サーバー全体でHTTP3/QUICネットワークプロトコルを有効にします。デフォルト値はYesです。
構文
ラジオボックスから選択
ヒント
Information この設定がYesに設定されている場合でも、リスナーレベルのHTTP3/QUIC(UDP)ポートを開く設定、またはバーチャルホストレベルのHTTP3/QUICを有効にする設定でHTTP3/QUICを無効にできます。
QUIC SHMディレクトリ
説明
QUICデータを共有メモリに保存するために使用するディレクトリを指定します。
デフォルトでは、サーバーのデフォルトSHMディレクトリ/dev/shmが使用されます。
構文
パス
ヒント
Information /dev/shmなど、RAMベースのパーティションを推奨します。
HTTP3/QUICバージョン
説明
有効にするHTTP3/QUICバージョンのリストです。この設定は、HTTP3/QUICサポートをリストされたバージョンに制限する場合にのみ使用してください。通常は空のままにするのが最適です。
構文
カンマ区切りリスト
例
ヒント
Information 最適な設定を自動的に適用するため、この設定は空のままにすることを推奨します。
輻輳制御
説明
使用する輻輳制御アルゴリズムです。手動で設定するか、"Default"オプションを選択して使用中のQUICライブラリに任せることができます。
デフォルト値:Default
構文
ドロップダウンリストから選択
接続フロー制御ウィンドウ
説明
QUIC接続用に割り当てるバッファの初期サイズです。デフォルト値は1.5Mです。
構文
64Kから512Mまでの数値
ヒント
Information ウィンドウサイズを大きくすると、より多くのメモリを使用します。
最大接続フロー制御ウィンドウ
説明
ウィンドウ自動調整によって接続フロー制御ウィンドウバッファが到達できる最大サイズを指定します。
デフォルト値は0です。これは接続フロー制御ウィンドウの値が使用され、自動調整が行われないことを意味します。
構文
0、または64Kから512Mまでの数値
ヒント
Information ウィンドウサイズを大きくすると、より多くのメモリを使用します。
ストリームフロー制御ウィンドウ
説明
QUIC接続がストリームごとに受信できる初期データ量です。デフォルト値は1Mです。
構文
64Kから128Mまでの数値
ヒント
Information ウィンドウサイズを大きくすると、より多くのメモリを使用します。
最大ストリームフロー制御ウィンドウ
説明
ウィンドウ自動調整によってストリームフロー制御ウィンドウが到達できる最大サイズを指定します。
デフォルト値は0です。これはストリームフロー制御ウィンドウの値が使用され、自動調整が行われないことを意味します。
構文
0、または64Kから128Mまでの数値
ヒント
Information ウィンドウサイズを大きくすると、より多くのメモリを使用します。
DPLPMTUDを有効にする
説明
Datagram Packetization Layer Path Maximum Transmission Unit Discovery(DPLPMTUD)を有効にします。
DPLPMTUDの背景(RFC 8899)
デフォルト値:Yes
構文
ラジオボックスから選択
PLPMTU基準値
説明
QUICがデフォルトで使用するPLPMTU(ヘッダーを除く最大パケットサイズ)の最大値をバイト単位で指定します。0に設定すると、QUICがサイズを選択します。
この設定はPLPMTU最大値より小さく設定する必要があります。
デフォルト値:0
構文
0、または1200から65527までの整数
PLPMTU最大値
説明
PLPMTU(ヘッダーを除く最大パケットサイズ)のプローブ上限をバイト単位で指定します。この設定は、DPLPMTUD検索範囲内の"maximum packet size"を制限するために使用されます。0に設定すると、QUICがサイズを選択します(デフォルトでは、LSQUICはMTUを1,500バイト(Ethernet)と仮定します)。
この設定はPLPMTU基準値より大きく設定する必要があります。
デフォルト値:0
構文
0、または1200から65527までの整数