Les journaux Nginx sont écrits dans un fichier. J'ai besoin d'un journal Nginx chaque jour
.
J'ai vu de nombreuses méthodes sur Internet, qui consistent toutes à écrire des scripts et à couper des fichiers journaux dans un format fixe
Nginx ne peut-il pas effectuer lui-même la découpe de journaux ?
Confirmez que cron est en cours d'exécution
Modifier le fichier de configuration
Confirmer les tâches planifiées
Écrire le fichier de configuration de logrotate vi /etc/logrotate.d/nginx
Test de configuration
Les besoins de journalisation des administrateurs système sont en constante évolution. Pour des raisons de légèreté, Nginx ne se soucie vraiment pas de la gestion des journaux.
Page Wiki officielle de LogRotation
Je suppose que vous l'avez également trouvé, vous pouvez utiliser votre propre script ou vous connecter.
Les fichiers journaux nginx n'ont pas de fonction de rotation. Si vous ne le gérez pas, le fichier journal deviendra de plus en plus volumineux. Heureusement, nous pouvons écrire un script de coupe de journal nginx pour couper automatiquement le fichier journal.
La première étape consiste à renommer le fichier journal. Ne vous inquiétez pas si nginx ne parvient pas à trouver le fichier journal et perd le journal après le changement de nom. Avant de rouvrir le fichier journal avec le nom d'origine, nginx écrira toujours les journaux dans le fichier que vous avez renommé. Linux s'appuie sur des descripteurs de fichiers plutôt que sur des noms de fichiers pour localiser les fichiers.
La deuxième étape consiste à envoyer le signal USR1 au processus principal nginx.
Après avoir reçu le signal, le processus principal de nginx lira le nom du fichier journal à partir du fichier de configuration, rouvrira le fichier journal (nommé avec le nom du journal dans le fichier de configuration) et utilisera l'utilisateur du processus de travail comme propriétaire de le fichier journal.
Après avoir rouvert le fichier journal, le processus principal nginx fermera le fichier journal du même nom et informera le processus de travail d'utiliser le fichier journal nouvellement ouvert.
Le processus de travail ouvre immédiatement de nouveaux fichiers journaux et ferme les fichiers journaux du même nom.
Ensuite, vous pouvez traiter les anciens fichiers journaux.
Le script de coupe automatique du journal Nginx par date est le suivant
logs_path="/usr/local/nginx/logs/"
pid_path="/usr/local/nginx/nginx.pid"
mv ${logs_path}access.log ${logs_path}access_$(date -d "hier" +"%Y%m%d").log
tuer -USR1
cat ${pid_path}
Enregistrez le script ci-dessus nginx_log.sh, ou cliquez ici pour télécharger
tâche de configuration de crontab
0 0 * * * bash /usr/local/nginx/nginx_log.sh
Cela renommera le journal nginx au format de date à 0h00 chaque jour et régénérera le nouveau fichier journal d'aujourd'hui.
Référence source détaillée : http://www.nginx.cn/255.html
Le plus simple est de le configurer directement dans le fichier de configuration :
Cette méthode génère souvent des fichiers sans date et est obsolète