nginx记录到access.log.1而不是access.log,logrotate失败了吗?
我有一个Nginx实例,该实例设置为记录对/var/log/nginx/access.log的访问权限和对/var/log/nginx/errors.log的错误记录,但是每周logrotate运行时,文件就会移至* .log.1和新的* .log文件已创建,但是nginx继续登录到log.1文件而不是新的.log文件(并且未压缩任何内容)。我第一次注意到这一点,距日志轮转已经有3周了,日志越来越大。运行kill -HUP `cat /run/nginx.pid`使nginx重新开始记录到正确的位置,但是问题在下周再次开始。 令人沮丧的更重要原因是我将日志设置为通过rsyslog上传到Loggly,并且当nginx停止记录到文件时,我进行了rsyslog轮询,然后事情停止了上传,并且我没有收到任何警报。 我怀疑它与重启nginx或重新加载配置有关,因为它直到我进行配置更改并以我认为正常的方式重新加载配置后才启动。我尝试运行,kill -USR1 `cat /run/nginx.pid`但是文件继续记录到错误的位置,直到我运行为止kill -HUP `cat /run/nginx.pid`,我已经知道这不能解决问题。 知道发生了什么吗?我承认我不是logrotate或nginx管理方面的专家,但我的Google在这方面的工作使我失败了。 这是我的nginx logrotate脚本,让我知道您是否还想看到其他内容。除了定义输出位置之外,nginx.conf在日志记录方面没有什么特别之处。 /var/log/nginx/*.log { weekly missingok rotate 52 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 [ -s /run/nginx.pid ] …