【问题标题】:Nginx logrotate not working on Amazon ServerNginx logrotate 在亚马逊服务器上不起作用
【发布时间】:2014-05-28 00:58:52
【问题描述】:

我是服务器端的新手。我已经在我的服务器(Amazon EC2 32 位实例)上安装了 Nginx 来运行我的 Ruby on Rails 应用程序。我已经为我的 nginx logrotate 编写了以下配置。

/var/log/nginx/*.log {
    daily
    missingok
    rotate 12
    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
        [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

但问题是,尽管轮换间隔保持为每天..有一个文件(nginx 访问日志)在 4.5 Gb 左右生成。我不知道为什么会发生这种情况,任何人都可以向我建议什么我可以避免这种情况。有人可以帮我解决这个问题。

【问题讨论】:

    标签: ubuntu logging nginx amazon-ec2


    【解决方案1】:

    您为什么不直接使用与存储库中的 Nginx 包一起安装的 logrotate 设置?它就像一个魅力:

    /var/log/nginx/*log {
        create 0644 nginx nginx
        daily
        rotate 10
        missingok
        notifempty
        compress
        sharedscripts
        postrotate
            /etc/init.d/nginx reopen_logs
        endscript
    }
    

    另外,验证用户和预旋转脚本。您正在使用特定于 Apache 服务器的 www-data 和 http-prerotate 脚本。

    最后,为什么不直接使用 Nginx 初始化脚本中内置的reopen_logs 方法呢?在未来的 Nginx 版本中,您使用的信号可能会随着时间而改变。

    【讨论】:

      【解决方案2】:

      不确定我是否遗漏了一些东西,但您的配置最明显没有的是实际的 size 声明。应该在什么时候轮换和压缩日志?

      尺寸 当日志文件变得比 size 字节大时,它们会旋转。如果 size 后跟 M,如果假定以兆字节为单位,则大小。 如果使用 k,则大小以千字节为单位。所以尺寸 100,尺寸 100k,大小100M都有效。

      还要注意,如果您使用的是 nginx,我认为您可以跳过 postrotate 而直接使用 copytruncate

      复制截断 创建副本后在原地截断原始日志文件, 而不是移动旧的日志文件并选择性地创建一个新的 一、可以在某些程序不能被告知关闭时使用 它的日志文件,因此可能会继续写入(附加)到 永远以前的日志文件。

      文档:http://linuxcommand.org/man_pages/logrotate8.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-06
        • 2016-10-04
        • 1970-01-01
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多