Ist es möglich, die Antwortdaten im Nginx-Zugriffsprotokoll zu protokollieren?
13
Ich versuche, die Antwortdaten für Entwicklungs- / Debugging-Zwecke zu drucken. Ich konnte keine ähnliche Frage oder Informationen dazu finden. Wenn Sie dies tun, fügen Sie bitte einen Kommentar hinzu.
Im Code scheinen wir die ersten 1000 Bytes aus dem Antwortblock zu setzen und in resp_body zu setzen, dh in dieser Zeile "resp_body = string.sub (ngx.arg [1], 1, 1000)". Gibt es einen bestimmten Grund dafür, 1000 zu sein?
Doon
In meinem Fall gibt es mir keinen Antworttext, sondern den Protokollpfad wie folgt: "resp_body:" "access_log / usr / local / openresty / nginx / logs / access.logupstreamlog" Können Sie bitte vorschlagen, was falsch ist?
Ich denke, ich würde es vorziehen, zu verwenden ngx.DEBUG. CRIT wird möglicherweise auf der Konsole gedruckt, per E-Mail an das gesamte Sysadmin-Team gesendet usw.
Das Echo-Modul und das bereitgestellte Beispiel sprechen über das Protokollieren der Anforderungsheader / -körper, aber ich möchte den Antworttext protokollieren. Danke petermolanar.
Antworten:
Verwenden Sie
body_filter_by_lua
diese Option, um einer Nginx-Variablen einen Anforderungshauptteil zuzuweisen. Hier ein Beispiel:quelle
Verwenden Sie das Modul ngx_lua
so was
rechts
location
quelle
ngx.DEBUG
. CRIT wird möglicherweise auf der Konsole gedruckt, per E-Mail an das gesamte Sysadmin-Team gesendet usw.Ich habe dieses zum Beispiel gefunden und ich denke, das Echo-Modul kann es auch.
quelle