Log Nginx ditulis dalam fail Saya memerlukan Log Nginx setiap hari
Saya melihat banyak kaedah di Internet, semuanya adalah untuk menulis skrip dan memotong fail Log dalam format tetap
Tidak bolehkah Nginx melakukan pemotongan balak dengan sendirinya?
Sahkan cron sedang berjalan
Ubah suai fail konfigurasi
Sahkan tugasan yang dijadualkan
Tulis fail konfigurasi logrotate vi /etc/logrotate.d/nginx
Konfigurasi ujian
Keperluan pengelogan pentadbir sistem sentiasa berubah demi kepentingannya yang ringan, Nginx benar-benar tidak bimbang tentang pengurusan log.
Halaman Wiki Rotasi Log Rasmi
Saya rasa anda juga telah menemuinya, anda boleh menggunakan skrip anda sendiri atau logrotate.
fail log nginx tidak mempunyai fungsi putar. Jika anda tidak mengendalikannya, fail log akan menjadi lebih besar dan lebih besar Nasib baik, kami boleh menulis skrip pemotongan log nginx untuk memotong fail log secara automatik.
Langkah pertama ialah menamakan semula fail log Jangan risau tentang nginx tidak dapat mencari fail log dan kehilangan log selepas menamakan semula. Sebelum anda membuka semula fail log dengan nama asal, nginx masih akan menulis log pada fail yang anda namakan semula Linux bergantung pada deskriptor fail dan bukannya nama fail untuk mencari fail.
Langkah kedua ialah menghantar isyarat USR1 ke proses utama nginx.
Selepas menerima isyarat, proses utama nginx akan membaca nama fail log daripada fail konfigurasi, membuka semula fail log (dinamakan dengan nama log dalam fail konfigurasi), dan menggunakan pengguna proses pekerja sebagai pemilik fail log itu.
Selepas membuka semula fail log, proses utama nginx akan menutup fail log dengan nama yang sama dan memberitahu proses pekerja untuk menggunakan fail log yang baru dibuka.
Proses pekerja segera membuka fail log baharu dan menutup fail log dengan nama yang sama.
Kemudian anda boleh memproses fail log lama.
skrip pemotongan automatik log nginx mengikut tarikh adalah seperti berikut
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/nginx.pid"
mv ${logs_path}access.log ${logs_path}access_$(tarikh -d "semalam" +"%Y%m%d").log
bunuh -USR1
cat ${pid_path}
Simpan skrip nginx_log.sh di atas, atau klik di sini untuk memuat turun
kerja persediaan crontab
0 0 * * * bash /usr/local/nginx/nginx_log.sh
Ini akan menamakan semula log nginx kepada format tarikh pada 0:00 setiap hari dan menjana semula fail log baharu hari ini.
Rujukan sumber terperinci: http://www.nginx.cn/255.html
Cara paling mudah ialah mengkonfigurasinya terus dalam fail konfigurasi:
Kaedah ini sering menjana fail tanpa tarikh dan telah ditamatkan