Ich teste Nginx und möchte Variablen in die Protokolldateien ausgeben. Wie kann ich das machen und welche Logdatei wird es gehen (Zugriff oder Fehler).
83
Sie können Nginx-Variablenwerte über Header senden. Handlich für die Entwicklung.
add_header X-uri "$uri";
und Sie werden in den Antwortköpfen Ihres Browsers sehen:
X-uri:/index.php
Ich mache das manchmal während der lokalen Entwicklung.
Es ist auch praktisch, um Ihnen mitzuteilen, ob ein Unterabschnitt ausgeführt wird oder nicht. Streuen Sie es einfach in Ihre Klauseln, um zu sehen, ob sie sich daran gewöhnen.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
add_header X-debug-message "A static file was served" always;
...
}
location ~ \.php$ {
add_header X-debug-message "A php file was used" always;
...
}
Wenn Sie also eine URL wie http://www.example.com/index.php besuchen, wird der letztgenannte Header ausgelöst, während Sie http://www.example.com/img/my-ducky.png besuchen, wird der erstgenannte Header ausgelöst.
add_header
bearbeitet werden können . Die Dokumentation besagt, dass es nur auf Antworten mit den Codes 200, 204, 301, 302 oder 304 angewendet werden kann. Daher kann es nicht zum Debuggen von HTTP-Fehlern verwendet werden.add_header
der den Header unabhängig vom Antwortcode zurückgibt. So sollte zum Beispieladd_header X-debug-message "A php file was used" always;
auch der 500er Fehlercode funktionieren.Sie können eine einfache Zeichenfolge als HTTP-Antwort zurückgeben:
quelle
Sie können mithilfe der
log_format
Direktive ein benutzerdefiniertes Zugriffsprotokollformat festlegen, das die Variablen protokolliert, an denen Sie interessiert sind.quelle
error_log
,debug
dass Sie den Wert der Variablen und des ausgeführten Blocks sehen können. Beispielerror_log file.log debug
-
im Protokoll angezeigt werden , aber im Nginx-Code wirklich leer sind. Dies sollten Sie-
zu keinem Zeitpunkt überprüfen . Dies verwirrt manchmal Benutzer.Eine andere Möglichkeit ist, das Echo-Modul beim Erstellen von Nginx einzuschließen oder OpenResty zu installieren, das Nginx mit einer Reihe von Erweiterungen (wie Echo) enthält.
Dann können Sie Ihre Konfiguration einfach mit Aussagen wie:
quelle
echo_log
Richtlinie in der Entwicklung.