Menyimpan nama pengguna dalam log nginx

10

Apakah ada cara di mana nama pengguna atau id pengguna dapat disimpan dalam log nginx. Saya mencoba memasukkan $ remote_user ke dalam arahan log_format tetapi sepertinya tidak berhasil.

nishant
sumber

Jawaban:

11

Ya, ini mungkin. Namun, karena Anda tidak menggunakan autentikasi dasar HTTP, Anda perlu aplikasi Anda untuk memberi tahu Nginx apa nama pengguna saat ini. Tambahkan tajuk respons di sepanjang baris:

X-Username: nishant

Kemudian dalam log_formatarahan Anda , gunakan variabel $sent_http_x_username. Perilaku ini didokumentasikan di sini: http://wiki.nginx.org/HttpCoreModule#.24sent_http_HEADER

Saya juga merekomendasikan menghapus tajuk tambahan ini dari respons sebelum mengirimnya ke klien. Anda dapat melakukan ini dengan NginxHttpHeadersMoreModule .

more_clear_headers 'X-Username';
Brad
sumber
Bisakah Anda memberi tahu saya cara menambahkan header tanggapan?
nishant
@nishant Itu sepenuhnya tergantung pada kode Anda. Anda harus menulis sesuatu atau memodifikasi apa yang Anda miliki untuk menghasilkan nama pengguna di header respons.
Brad
Aplikasi web didasarkan pada Django.
nishant
@nishant Saya belum menulis apa pun dengan Django jadi saya tidak bisa memberikan saran khusus, tetapi sepertinya mendukung middleware. Saya akan menulis modul middleware yang mengurus penambahan header tambahan.
Brad