NGINX e rotação de log: está faltando entradas de log possíveis?

1

Em sua realização mais simples, pode-se implementar a rotação de logs do NGINX da seguinte forma:

mv access.log access.log.0
kill -USR1 'cat master.nginx.pid'

Minha pergunta. Temos um problema de simultaneidade aqui? Quero dizer, se o NGINX escreve uma entrada de log entre duas ações (1) o arquivo foi renomeado e (2) ele recebeu um comando para recarregar, algumas entradas de log podem ser perdidas?

    
por user1065145 13.07.2015 / 12:37

1 resposta

2

Antes de enviar sinal USR1 espere por 15 segundos e você verá que * access.log.0 "ainda está sendo usado. Isso acontece porque o log está aberto para acesso de gravação baseado em inode, não no nome do arquivo. Portanto, é concorrente seguro para usar esta técnica: mv + USR1

    
por 13.07.2015 / 12:40