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.

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';

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.