Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk melaksanakan konfigurasi pemotongan log Nginx

Bagaimana untuk melaksanakan konfigurasi pemotongan log Nginx

WBOY
WBOYasal
2023-11-08 12:48:211305semak imbas

Bagaimana untuk melaksanakan konfigurasi pemotongan log Nginx

Cara melaksanakan konfigurasi pemotongan log Nginx, contoh kod khusus diperlukan

Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang sangat popular yang digunakan secara meluas untuk membina dan menjalankan aplikasi moden. Sebagai jurutera operasi dan penyelenggaraan, kami selalunya perlu mengkonfigurasi fungsi pemotongan log pelayan Nginx supaya log pelayan boleh dipotong dengan kerap untuk mengelakkan fail log yang berlebihan daripada menjejaskan prestasi pelayan. Berikut akan memperkenalkan cara melaksanakan konfigurasi pemotongan log Nginx dan memberikan contoh kod khusus.

1. Mengapa anda perlu mengkonfigurasi pemotongan log? banyak ruang cakera, dan kecekapan juga akan dikurangkan apabila mencari maklumat log tertentu. Untuk menyelesaikan masalah ini, kita perlu kerap memotong log Nginx, memotong fail log mengikut saiz atau selang masa tertentu, dan mengarkib atau memadam fail log lama untuk mengekalkan prestasi pelayan dan kebolehurusan.

2. Cara mengkonfigurasi pemotongan log Nginx

Pasang alat logrotate
  1. logrotate ialah alat pemotong log yang biasa digunakan yang boleh digunakan untuk memotong, mengarkib dan memadam pelbagai fail log secara automatik. Pertama, kita perlu memasang alat logrotate pada pelayan. Jika pelayan anda menggunakan sistem Debian/Ubuntu, anda boleh menggunakan arahan berikut untuk memasangnya:
sudo apt-get install logrotate

Jika pelayan anda menggunakan sistem CentOS/RHEL, anda boleh menggunakan arahan berikut untuk memasangnya:

sudo yum install logrotate

Cipta log fail konfigurasi memotong
  1. Seterusnya, kita perlu mencipta fail konfigurasi pemotongan log Nginx untuk menentukan peraturan pemotongan dan operasi yang akan dilakukan. Biasanya, fail log Nginx terletak dalam direktori /var/log/nginx/ Kami boleh mencipta fail bernama nginx.logrotate dalam direktori ini dan Edit konfigurasi berikut:
/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0644 nginx nginx
    sharedscripts
    postrotate
        /usr/sbin/nginx -s reopen
    endscript
}

Dalam konfigurasi di atas, maksud setiap parameter adalah seperti berikut: /var/log/nginx/目录下,我们可以在该目录下创建一个名为nginx.logrotate的文件,并编辑如下配置:

sudo logrotate -f /etc/logrotate.d/nginx.logrotate

上述配置中,各个参数的含义如下:

  • daily:按照每天的时间间隔进行切割;
  • missingok:如果日志文件不存在,则不报错;
  • rotate 7:保留最近7个切割后的日志文件,旧的日志文件会被删除;
  • compress:对切割后的日志文件进行压缩;
  • delaycompress:延迟压缩,即在下一次切割时再进行压缩;
  • notifempty:如果切割后的日志文件为空,则不执行任何操作;
  • create 0644 nginx nginx:创建新的日志文件时,设置权限为0644,所有者和组为nginx;
  • sharedscripts:在执行切割脚本之前只执行一次脚本;
  • postrotateendscript:在切割完成后执行的脚本,将Nginx服务器重新打开日志文件。
  1. 测试日志切割配置

完成配置文件的编写后,可以使用以下命令进行日志切割的测试:

0 0 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/nginx.logrotate

执行上述命令后,logrotate将会按照配置文件的规则对Nginx的日志文件进行切割。你可以通过ls命令查看/var/log/nginx/目录下的日志文件,看是否按照规则进行了切割和压缩。

  1. 设置logrotate的定时任务

为了实现自动的日志切割功能,我们需要将logrotate的执行任务加入到系统的定时任务中。可以编辑/etc/crontab

    harian: Potong mengikut selang masa harian

    missingok: Jika fail log tidak wujud, tiada ralat akan dilaporkan; /code> : Mampatkan fail log yang telah dipotong; kosong, tiada operasi akan dilakukan; code>: Jalankan skrip sekali sahaja sebelum melaksanakan skrip pemotongan

    postrotate dan endscript: Skrip dilaksanakan selepas pemotongan selesai untuk membuka semula fail log daripada pelayan Nginx.

    Uji konfigurasi pemotongan log🎜🎜🎜Selepas melengkapkan penulisan fail konfigurasi, anda boleh menggunakan arahan berikut untuk menguji pemotongan log: 🎜rrreee🎜Selepas melaksanakan perkara di atas arahan, logrotate akan mengikut Peraturan fail konfigurasi memotong fail log Nginx. Anda boleh menggunakan perintah ls untuk melihat fail log dalam direktori /var/log/nginx/ untuk melihat sama ada ia telah dipotong dan dimampatkan mengikut peraturan. 🎜
      🎜Tetapkan tugas berjadual logrotate🎜🎜🎜Untuk merealisasikan fungsi pemotongan log automatik, kita perlu menambah tugas pelaksanaan logrotate kepada tugasan sistem yang dijadualkan. Anda boleh mengedit fail /etc/crontab dan menambah baris berikut: 🎜rrreee🎜Dengan cara ini, logrotate akan melakukan operasi pemotongan log pada tengah malam (0 jam, 0 minit) setiap hari. 🎜🎜Ringkasan🎜🎜Sangat perlu untuk mengkonfigurasi fungsi pemotongan log Nginx, yang boleh mengekalkan prestasi dan kebolehurusan pelayan. Dengan memasang alat logrotate, mencipta fail konfigurasi pemotongan log, dan menyediakan tugas yang dijadualkan, anda boleh merealisasikan fungsi pemotongan log automatik. Saya harap contoh kod khusus yang disediakan dalam artikel ini dapat membantu anda melaksanakan konfigurasi pemotongan log Nginx. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan konfigurasi pemotongan log Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn