Speichern des Benutzernamens in Nginx-Protokollen


10

Gibt es eine Möglichkeit, wie Benutzername oder Benutzer-ID in Nginx-Protokollen gespeichert werden können? Ich habe versucht, $ remote_user in die Direktive log_format einzufügen, aber es scheint nicht zu funktionieren.

Antworten:


10

Ja, das ist möglich. Da Sie jedoch keine HTTP-Basisauthentifizierung verwenden, muss Ihre Anwendung Nginx den aktuellen Benutzernamen mitteilen. Fügen Sie einen Antwortheader hinzu:

X-Username: nishant

log_formatVerwenden Sie dann in Ihrer Direktive die Variable $sent_http_x_username. Dieses Verhalten ist hier dokumentiert: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

Ich empfehle außerdem, diesen zusätzlichen Header aus der Antwort zu entfernen, bevor Sie ihn an den Client senden. Sie können dies mit dem NginxHttpHeadersMoreModule tun .

more_clear_headers 'X-Username';

Können Sie mir bitte sagen, wie ich einen Antwortheader hinzufügen soll?
Nishant

@nishant Das hängt ganz von deinem Code ab. Sie müssen etwas schreiben oder ändern, was Sie zur Ausgabe des Benutzernamens im Antwortheader benötigen.
Brad

Die Webanwendung basiert auf Django.
Nishant

@nishant Ich habe nichts mit Django geschrieben, daher kann ich Ihnen keine konkreten Ratschläge geben, aber es sieht so aus, als würde es Middleware unterstützen. Ich würde ein Middleware-Modul schreiben, das sich um das Hinzufügen des zusätzlichen Headers kümmert.
Brad
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.