【基本パラメータ設定】
はじめに
このページでは、REST-API サーバーの動作に影響する 基本パラメータ設定ファイル の仕様について解説します。
本設定はサーバーのネットワーク動作、リクエスト制限、Keep-Alive、ETag など、サーバー全体の挙動を制御する重要な役割を持ちます。
なお、設定ファイル名は固定ではなく、メイン処理クラスの
メイン処理クラスでの設定方法は ▶メイン処理クラス実装(設定ファイル指定) を参照してください。
本設定はサーバーのネットワーク動作、リクエスト制限、Keep-Alive、ETag など、サーバー全体の挙動を制御する重要な役割を持ちます。
なお、設定ファイル名は固定ではなく、メイン処理クラスの
$setting_files['parameter'] プロパティにより任意の名称を指定できます。メイン処理クラスでの設定方法は ▶メイン処理クラス実装(設定ファイル指定) を参照してください。
設定ファイルの構造
基本パラメータ設定ファイルは、
主な項目は次の通りです。
return によって連想配列を返す形式で記述します。主な項目は次の通りです。
- ネットワーク設定(host / port)
- 接続・バッファ制限(limit_connection / receive_buffer_size)
- リクエストサイズ制限(limit_request_size / limit_body_size)
- サーバー内部動作(cycle_interval / alive_interval)
- Keep-Alive 設定(keep_alive)
- ETag 設定(etag)
各パラメータの説明
host
サーバーがバインドするホスト名を指定します。通常は
localhost またはサーバーの IP アドレスを設定します。※ コマンドライン引数で指定可能です(引数の配置は ▶メイン処理クラス実装(サーバー識別子) にて設計できます)。
port
サーバーが待ち受けるポート番号です。REST-API サーバーを複数起動する場合はポート番号の重複に注意してください。
※ コマンドライン引数で指定可能です。
limit_connection
同時接続数の上限を指定します。大量アクセスが予想される場合は値を増やすことで対応できますが、サーバー負荷とのバランスが必要です。
※ コマンドライン引数で指定可能です。
receive_buffer_size
受信バッファサイズ(バイト数)を指定します。1 回の読み取りで処理するデータ量に影響します。
※ コマンドライン引数で指定可能です。
limit_request_size
HTTP ヘッダ+ボディの 合計サイズ の上限を指定します。null を指定すると制限なしとなります。※ コマンドライン引数で指定可能です。
Expect: 100-continue の処理において、 ▶ルーティング設定(Expect ヘッダ処理) でこの値が参照されます。
limit_body_size
HTTP ボディ部のサイズ上限です。null の場合は制限なしとなります。※ コマンドライン引数で指定可能です。
こちらも Expect ヘッダ処理における制限判定に利用されます。
cycle_interval
サーバー内部の周期処理(μs単位)のインターバル時間です。値を小さくすると応答性が向上しますが CPU 使用率が増加します。
※ コマンドライン引数で指定可能です。
alive_interval
Keep-Alive の接続維持時間(秒)です。クライアントからの通信が一定時間ない場合、接続を切断します。
※ コマンドライン引数で指定可能です。
keep_alive
Keep-Alive を有効にするかどうかのフラグです。※ コマンドライン引数で指定可能です。
true:Keep-Alive を有効化false:リクエストごとに接続を切断
etag
ETag 生成時のモードを指定します。strong:厳密比較(完全一致)weak:緩い比較(先頭一致)
スキャフォールディング(CLI)
基本パラメータ設定ファイルは CLI コマンドで自動生成できます。
php worker custom:setting-parameter <カスタム名>
<カスタム名>は任意の名前を指定できます。- 生成したファイル名はメイン処理クラス側で設定可能です。
- 同名ファイルが存在する場合は警告して終了します。
<プロジェクトルート>/setting/
おわりに
このページでは、REST-API サーバーの動作を制御する 基本パラメータ設定ファイルの仕様 を解説しました。
各パラメータを適切に設定することで、サーバーの性能・安定性・安全性を最適化できます。
より詳細なサーバー構造については ▶コンセプトと構造 も参照してください。
各パラメータを適切に設定することで、サーバーの性能・安定性・安全性を最適化できます。
より詳細なサーバー構造については ▶コンセプトと構造 も参照してください。