首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >日志旋转httpd (apache)日志-在日志清除之后不需要重新加载httpd就可以了?

日志旋转httpd (apache)日志-在日志清除之后不需要重新加载httpd就可以了?
EN

Server Fault用户
提问于 2012-07-05 07:07:43
回答 2查看 7.4K关注 0票数 0

让我们从一个小转储开始:

代码语言:javascript
运行
复制
/var/log/httpd/*log {
    compress
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

这是httpd logrotate.d文件的转储。

如您所见,文件旋转后,apache将被“重新加载”。

可以禁用这个吗?

我们将代理(通过nginx)反转到我们的apache盒,并注意到当执行此操作(httpd重新加载)时,有2-5秒的停机时间(注意到,通过nginx反向代理日志)。

我们想要禁用这个。

任何想法,如何旋转apache日志,而不发送重新加载,一旦他们已经被旋转?

谢谢!

EN

回答 2

Server Fault用户

回答已采纳

发布于 2012-07-05 07:11:27

您可以使用Apache的管状原木。您可以编写管道流来自己归档,并处理脚本中的旋转。那么就不需要重新加载Apache了。

票数 5
EN

Server Fault用户

发布于 2012-07-05 10:23:29

重新加载的原因是Apache打开日志文件并在启动或重新加载时获取它的句柄。然后,即使文件被移动,它也会继续写入该文件句柄,因此,如果通过移动文件来旋转文件,则需要重新加载文件,这样它就会意识到文件丢失,并创建一个新的文件句柄。

正如Christopher所说,使用管道日志是一种解决方案。另一种方法是使用以下选项

代码语言:javascript
运行
复制
copytruncate

在您的日志旋转配置文件中。而不是移动日志文件,它将被复制到它的新位置,旧文件将被截断。这意味着Apache可以保持相同的文件句柄,并且不需要重新启动。

票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/404916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档