微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

windows – 一起使用mod_log_rotate和rotatelogs.exe有什么缺点?

在基于Microsoft的平台上,使用rotatelogs.exe for ErrorLog指令并允许mod_log_rotate处理CustomLog指令进行轮换有任何缺点或隐藏的缺陷吗?据我了解,mod_log_rotate接管服务器范围内的日志记录职责,那么mod_log_rotate和rotatelogs.exe如何交互?来自mod_log_rotate的rotatelogs.exe管道数据是什么?

以下是我在httpd.conf中的配置:

# Rotate our ErrorLogs,since mod_log_rotate doesn't seem to handle this.
ErrorLog "|bin/rotatelogs.exe -l logs/error/error.%Y-%m-%d-%H_%M_%s.log 86400"
[...]
<IfModule log_rotate_module>
#
# Produce a log file with at human readable extension in a directory called 'access'.
#
CustomLog logs/access/access_log.%Y-%m-%d-%H%M%s combined
[...]

我不是在征求意见,特别是如果它们是偏离主题的话.我想知道这是否会从技术或安全角度产生任何实际问题.

rotatelogs和mod_log_rotate是针对同一问题的两种不同解决方案(无需发信号或重启Apache即可旋转日志).

rotatelogs(或其他程序,如cronolog)通过将Apache日志传递给处理旋转的程序来解决问题.这是一个很好的解决方案,但它意味着运行另一个进程并保持管道打开.

mod_log_rotate通过处理服务器进程中的旋转来解决问题.同样,这也是一个很好的解决方案,但它只会旋转访问日志(这使得您需要为错误日志执行其他操作).

使用这两种解决方案没有“错误”(一个用于处理访问日志,一个用于处理错误日志),但为了理智和一致性,我会坚持一个解决方案 – 在旋转日志时发出Apache信号,或者管道旋转日志的一切.

特别是在Windows上,我建议在外部轮换您的日志并发信号通知Apache,因为piping stuff around on Windows can be buggy(据我所知,自2006年以来情况没有太大改善).

(实际上,我建议我不建议在Windows上运行Apache – Apache设计为在Unix服务器上运行,IIS设计为在Windows服务器上运行,尽管Apache人员可能会声称,但两者之间永远不应该交叉支持“Windows.”

原文地址:https://www.jb51.cc/windows/367193.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐