Comment implémenter la configuration de coupe de journaux Nginx, des exemples de code spécifiques sont requis
Nginx est un serveur Web hautes performances et un serveur proxy inverse très populaire qui est largement utilisé pour créer et exécuter des applications modernes. En tant qu'ingénieur d'exploitation et de maintenance, nous devons souvent configurer la fonction de coupe de journaux du serveur Nginx afin que les journaux du serveur puissent être coupés régulièrement afin d'éviter qu'un excès de fichiers journaux n'affecte les performances du serveur. Ce qui suit présentera comment implémenter la configuration de coupe de journaux Nginx et donnera des exemples de code spécifiques.
1. Pourquoi devez-vous configurer la coupe des journaux ?
Le serveur Nginx écrit par défaut tous les journaux d'accès et les journaux d'erreurs. À mesure que le nombre de visites augmente, les fichiers journaux deviendront progressivement énormes, et ne se contenteront pas de prendre de l'ampleur. beaucoup d'espace disque et l'efficacité sera également réduite lors de la recherche d'informations de journal spécifiques. Afin de résoudre ce problème, nous devons régulièrement couper les journaux Nginx, couper les fichiers journaux en fonction d'une certaine taille ou d'un certain intervalle de temps, et archiver ou supprimer les anciens fichiers journaux pour maintenir les performances et la gérabilité du serveur.
2. Comment configurer la coupe de journaux Nginx
logrotate est un outil de coupe de journaux couramment utilisé qui peut être utilisé pour couper, archiver et supprimer automatiquement divers fichiers journaux. Tout d’abord, nous devons installer l’outil logrotate sur le serveur. Si votre serveur utilise un système Debian/Ubuntu, vous pouvez utiliser la commande suivante pour l'installer :
sudo apt-get install logrotate
Si votre serveur utilise un système CentOS/RHEL, vous pouvez utiliser la commande suivante pour l'installer :
sudo yum install logrotate
Ensuite, nous devons créer un fichier de configuration de coupe de journal Nginx pour définir les règles de coupe et les opérations à effectuer. Normalement, les fichiers journaux Nginx se trouvent dans le répertoire /var/log/nginx/
Nous pouvons créer un fichier nommé nginx.logrotate
dans ce répertoire et modifier la configuration suivante : /var/log/nginx/
目录下,我们可以在该目录下创建一个名为nginx.logrotate
的文件,并编辑如下配置:
/var/log/nginx/*.log { daily missingok rotate 7 compress delaycompress notifempty create 0644 nginx nginx sharedscripts postrotate /usr/sbin/nginx -s reopen endscript }
上述配置中,各个参数的含义如下:
daily
:按照每天的时间间隔进行切割;missingok
:如果日志文件不存在,则不报错;rotate 7
:保留最近7个切割后的日志文件,旧的日志文件会被删除;compress
:对切割后的日志文件进行压缩;delaycompress
:延迟压缩,即在下一次切割时再进行压缩;notifempty
:如果切割后的日志文件为空,则不执行任何操作;create 0644 nginx nginx
:创建新的日志文件时,设置权限为0644,所有者和组为nginx;sharedscripts
:在执行切割脚本之前只执行一次脚本;postrotate
和endscript
:在切割完成后执行的脚本,将Nginx服务器重新打开日志文件。完成配置文件的编写后,可以使用以下命令进行日志切割的测试:
sudo logrotate -f /etc/logrotate.d/nginx.logrotate
执行上述命令后,logrotate将会按照配置文件的规则对Nginx的日志文件进行切割。你可以通过ls
命令查看/var/log/nginx/
目录下的日志文件,看是否按照规则进行了切割和压缩。
为了实现自动的日志切割功能,我们需要将logrotate的执行任务加入到系统的定时任务中。可以编辑/etc/crontab
0 0 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/nginx.logrotate
daily
: Couper selon les intervalles de temps quotidiens
missingok
: Si le fichier journal n'existe pas, aucune erreur ne sera signalée ;
rotation 7
: conservez les 7 derniers fichiers journaux coupés, et les anciens fichiers journaux seront supprimés 🎜🎜compresser ; code> : compresse le fichier journal de coupe ; 🎜🎜<code>delaycompress
: retarde la compression, c'est-à-dire compresse la coupe suivante ; 🎜🎜notifempty
: si le fichier journal de coupe est le cas ; vide, aucune opération ne sera effectuée ; 🎜🎜create 0644 nginx nginx
: lors de la création d'un nouveau fichier journal, définissez l'autorisation sur 0644, le propriétaire et le groupe sur 🎜🎜sharedscripts ; code> code> : Exécutez le script une seule fois avant d'exécuter le script de découpe ; 🎜🎜<code>postrotate
et endscript
: Scripts exécutés une fois la découpe terminée pour rouvrir le fichier journal du Serveur Nginx. 🎜
ls
pour afficher les fichiers journaux dans le répertoire /var/log/nginx/
afin de voir s'ils ont été coupés et compressés conformément aux règles. 🎜/etc/crontab
et ajouter la ligne suivante : 🎜rrreee🎜De cette façon, à minuit tous les jours (0 heures, 0 minutes), logrotate effectuera une opération de découpe de journal. 🎜🎜Résumé🎜🎜Il est très nécessaire de configurer la fonction de coupe de journaux de Nginx, qui peut maintenir les performances et la gérabilité du serveur. En installant l'outil logrotate, en créant un fichier de configuration de coupe de bûches et en configurant des tâches planifiées, vous pouvez réaliser la fonction de coupe automatique de bûches. J'espère que les exemples de code spécifiques fournis dans cet article pourront vous aider à implémenter la configuration de coupe de journaux Nginx. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!