
かなり長時間続くリクエスト(最大10秒)のnginxログを読んでいます。ログ形式では、変数を使用して$time_local
時間を記録しています。しかし、これはリクエストが行われた時間を意味しますか?開始またはそれが終了した? 長時間実行されているリクエストの場合、これらはかなり異なる時間であり、ngx_http_log_module ドキュメントこれを説明します。
答え1
変数に$time_local
は、ログ エントリが書き込まれた時刻が含まれます。
HTTP リクエスト ヘッダーが読み取られると、nginx は関連する仮想サーバー構成を検索します。仮想サーバーが見つかった場合、リクエストは次の 6 つのフェーズを経ます。
- サーバー書き換えフェーズ
- 位置フェーズ
- ロケーション書き換えフェーズ(リクエストを前のフェーズに戻すことができます)
- アクセス制御フェーズ
- try_files フェーズ
- 対数位相
ログ フェーズは最後のフェーズであるため、$time_local
変数はリクエストの開始よりも終了に近くなります。