NginX Log Rotation

9

Estou atendendo alguns domínios diferentes por meio do NginX no mesmo servidor e cada um deles registra em seu próprio arquivo. Eu preciso configurar um script para girar e compactar esses arquivos e adicioná-lo ao cron.

Eu sei que tenho que fazer algo para que o NginX abra um novo arquivo de log assim que eu mover o antigo. Alguém pode me dar o procedimento para rodar com segurança os arquivos de log nginx? Eu estou supondo que eu preciso usar o logrotate, como configurá-lo?

Sistema:

  • Ed. do servidor Ubuntu 9.04.
  • nginx / 0.7.61
por John F. Miller 28.08.2009 / 22:51

3 respostas

18

Tornou-se uma espécie de semi-padrão informal entre os daemons do Unix que eles descarregam e / ou rotacionam seus arquivos de log quando você envia um sinal de desligamento ( SIGHUP ). O Nginx não segue esta convenção ao pé da letra, mas responde ao sinal USR1 da mesma forma, como está documentado no site da Nginx sob o título Rotação de log .

Então, você pode tentar algo como

kill -s USR1 'pidof nginx'
    
por 29.08.2009 / 12:48
11

logginging nginx logs:

# nginx SIGUSR1: Re-opens the log files.
/opt/nginx/logs/access.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 'cat /opt/nginx/logs/nginx.pid'
 endscript 
}

/opt/nginx/logs/error.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate  
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 'cat /opt/nginx/logs/nginx.pid'
  endscript
}

log de produção de trilhos logrotating:

/home/app_user/apps/railsapp/log/production.log {
  missingok
  notifempty
  delaycompress
  sharedscripts
  postrotate
    test ! -f /opt/nginx/logs/nginx.pid || kill -USR1 'cat /opt/nginx/logs/nginx.pid'
  endscript
}
    
por 19.06.2011 / 16:43
3

Se você usar logrotate, adicione o seguinte (com a localização correta) na seção nginx do logrotate.conf:

postrotate
  kill -s USR1 'cat /location/of/nginx.pid'
endscript

De acordo com a página man do logrotate (8)

    
por 21.11.2010 / 18:23