Nginx, comment passer d’un access.log journalier à un access.log mensuel

Bonjour à tous et à tous.
Nginx me crée un fichier access.log chaque jour. J’aimerai savoir si il est possible de modifier cela pour que Nginx crée un fichier access.log seulement une fois par mois.
Je suis conscient que ça va me faire des fichiers plus gros mais ça peut me simplifier la vie d’utiliser un seul fichier pour un mois d’autant que je n’ai pas beaucoup de pages vu sur mon site (moins de 900 par mois).
J’ai fait une recherche mais je ne trouve pas comment configurer cela.
Si quelqu’un a une idée ?
Merci à vous.

Salut,

en fait ce n’est pas nginx qui crée un fichier chaque jour, il se contente d’écrire dans les fichiers de log indiqués.
C’est logrotate qui, chaque jour (via cron), archive le fichier de log courant et en crée un nouveau.
Tu peux modifier le comportement de logrotate, par exemple mon fichier /etc/logrotate.d/nginx est comme ça:

/var/log/nginx/*.log {
        daily
        missingok
        rotate 14
        compress
        delaycompress
        notifempty
        create 0640 www-data adm
        sharedscripts
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi \
        endscript
        postrotate
                invoke-rc.d nginx rotate >/dev/null 2>&1
        endscript
}

En gros, tous les jours, logrotate archive (renommage et compression) les fichiers log nginx, et conserve les 14 plus récents.
Tu peux remplacer daily par monthly et ajuster le paramètre rotate selon ce qui convient.

PS: la doc logrotate

Bonjour, Sputnik93.
Ben je serais moins con ce soir :smiley:
Je ne m’étais jamais questionné sur le fonctionnement des journaux.
Merci pour ton explication clair et précise.
J’ai fait les modifications et redémarré le service logrotate.
Encore merci.