Was bedeutet speziell die Protokollierungsvariable $ time_local von nginx?

7

Ich lese einige Nginx-Protokolle für einige ziemlich lang anhaltende Anfragen (bis zu 10 Sekunden). Im Protokollformat verwenden wir die $time_localVariable, um die Zeit aufzuzeichnen. Aber bedeutet dies die Zeit, zu der die Anfrage gestartet oder beendet wurde ? Bei einer lang laufenden Anfrage sind dies sehr unterschiedliche Zeiten, und ich kann in der Dokumentation zu ngx_http_log_module nichts finden , um dies zu erklären.

Philip Potter
quelle

Antworten:

11

Die $time_localVariable enthält die Zeit, zu der der Protokolleintrag geschrieben wird.

Wenn der HTTP-Anforderungsheader gelesen wird, sucht nginx nach der zugehörigen Konfiguration des virtuellen Servers. Wenn der virtuelle Server gefunden wird, durchläuft die Anforderung sechs Phasen:

  • Server-Rewrite-Phase
  • Standortphase
  • Phase zum Umschreiben des Standorts (wodurch die Anforderung zur vorherigen Phase zurückgeführt werden kann)
  • Zugangskontrollphase
  • try_files Phase
  • Log-Phase

Da die Protokollphase die letzte ist, ist die $time_localVariable bis zum Ende der Anforderung viel intensiver als bis zum Start.

m0ntassar
quelle
danke .. kannst du mir zeigen, wo ich das in der Dokumentation hätte finden können?
Philip Potter
2
nginx.com/docs.html Die Informationen befinden sich unter dem Link "Die Architektur von Open Source-Anwendungen, Band II", der ein gutes Nachschlagewerk ist.
m0ntassar
Sieht so aus, als hätten sie die URL geändert. Es ist jetzt unter nginx.org/en/docs mit dem Nachschlagewerk unter aosabook.org/en/nginx.html .
trss