Analisis konfigurasi pemotongan log nginx, pengurusan storan log laman web
Dalam proses pengendalian laman web, log adalah sangat penting. Ia boleh menyediakan rekod terperinci tentang status berjalan tapak web, membantu pembangun dan pentadbir menganalisis masalah dan mengoptimumkan prestasi. Walau bagaimanapun, apabila tapak web terus berkembang, fail log akan menjadi lebih besar dan lebih besar, yang akan mengenakan cukai kepada ruang storan dan prestasi pelayan. Untuk menyelesaikan masalah ini, kita boleh menggunakan fungsi pemotongan log Nginx untuk membahagikan fail log mengikut masa atau saiz, untuk mencapai pengurusan dan penyimpanan log yang berkesan.
Nginx ialah pelayan web berprestasi tinggi, dan fungsi serta tingkah lakunya boleh dilaraskan secara fleksibel melalui fail konfigurasi. Di bawah, kami akan menggunakan contoh mudah untuk menunjukkan cara mengkonfigurasi Nginx untuk melaksanakan pemotongan log.
Pertama, kita perlu menentukan format log dan laluan storan dalam fail konfigurasi Nginx. Dalam modul http
Nginx, anda boleh mentakrifkan format log dengan menambahkan kod berikut: http
模块中,可以通过添加以下代码来定义日志格式:
http { ... log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; ... }
在上述代码中,log_format
指令定义了一个名为access的日志格式,其中包含了一些常用的日志变量,如客户端IP地址、访问时间、请求URL、返回状态码等。
接下来,我们需要将这个日志格式应用到具体的访问日志中。在Nginx的server
块中,可以通过添加以下代码来指定访问日志的存储路径和格式:
server { ... access_log /var/log/nginx/access.log access; ... }
在上述代码中,access_log
指令指定了访问日志的存储路径和格式。其中,/var/log/nginx/access.log
为日志文件的存储路径,access
为之前定义的日志格式名称。
默认情况下,Nginx会把所有的访问日志写入到同一个文件中。但是,当这个文件变得非常大时,我们可能会希望将它拆分成多个小文件。为了实现这个功能,我们可以使用Nginx提供的logrotate
工具。
logrotate
是一个常用的日志切割工具,可以根据指定的规则来拆分日志文件。我们可以编写一个名为nginx
的配置文件,其中定义了Nginx访问日志的拆分规则。下面是一个示例:
/var/log/nginx/access.log { daily rotate 7 missingok notifempty compress postrotate /usr/sbin/nginx -s reopen endscript }
在上述代码中,/var/log/nginx/access.log
为需要被拆分的日志文件路径。daily
指定了按天拆分,rotate 7
表示保留7天的日志文件。missingok
表示如果日志文件不存在,也不报错。notifempty
表示如果日志文件为空,也不报错。compress
表示对新生成的日志文件进行压缩。postrotate
和endscript
之间的代码会在日志文件切割完成后执行,这里使用/usr/sbin/nginx -s reopen
来通知Nginx重新打开日志文件。
最后,我们需要将这个nginx
配置文件放置到/etc/logrotate.d/
目录下。logrotate
rrreee
log_format
mentakrifkan format log bernama access , yang mengandungi beberapa pembolehubah log yang biasa digunakan, seperti alamat IP klien, masa akses, URL permintaan, kod status pemulangan, dsb. Seterusnya, kita perlu menggunakan format log ini pada log akses tertentu. Dalam blok server
Nginx, anda boleh menentukan laluan storan dan format log akses dengan menambahkan kod berikut: 🎜rrreee🎜Dalam kod di atas, arahan access_log
menentukan laluan dan format storan log akses. Antaranya, /var/log/nginx/access.log
ialah laluan storan fail log dan access
ialah nama format log yang ditakrifkan sebelum ini. 🎜🎜Secara lalai, Nginx akan menulis semua log akses ke fail yang sama. Walau bagaimanapun, apabila fail ini menjadi sangat besar, kami mungkin mahu membahagikannya kepada beberapa fail yang lebih kecil. Untuk mencapai fungsi ini, kita boleh menggunakan alat logrotate
yang disediakan oleh Nginx. 🎜🎜logrotate
ialah alat pemotong log yang biasa digunakan yang boleh membahagi fail log mengikut peraturan yang ditetapkan. Kita boleh menulis fail konfigurasi bernama nginx
, yang mentakrifkan peraturan pemisahan log akses Nginx. Berikut ialah contoh: 🎜rrreee🎜Dalam kod di atas, /var/log/nginx/access.log
ialah laluan fail log yang perlu dipecahkan. harian
menentukan pemisahan mengikut hari dan putar 7
bermaksud mengekalkan fail log selama 7 hari. missingok
bermakna jika fail log tidak wujud, tiada ralat akan dilaporkan. notifempty
bermakna jika fail log kosong, tiada ralat akan dilaporkan. compress
bermaksud memampatkan fail log yang baru dijana. Kod antara postrotate
dan endscript
akan dilaksanakan selepas fail log dipotong Di sini, gunakan /usr/sbin/nginx -s reopen
untuk maklumkan Nginx membuka semula fail log. 🎜🎜Akhir sekali, kita perlu meletakkan fail konfigurasi nginx
ini dalam direktori /etc/logrotate.d/
. logrotate
akan mengimbas direktori ini dengan kerap dan kemudian memisahkan log mengikut fail konfigurasi di dalamnya. 🎜🎜Di atas adalah contoh mudah menggunakan Nginx untuk melaksanakan pemotongan balak. Dengan mengkonfigurasi format log Nginx dan peraturan pemotongan dengan betul, kami boleh mengurus dan menyimpan log akses tapak web dengan berkesan. Ini bukan sahaja menjimatkan ruang storan tetapi juga meningkatkan prestasi keseluruhan pelayan. Semoga artikel ini bermanfaat kepada anda. 🎜Atas ialah kandungan terperinci Analisis konfigurasi pemotongan log Nginx, pengurusan storan log laman web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!