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.