Apache-2.2

httpd (CentOS) 的 Logrotate 配置

  • April 24, 2011

我在 CentOS 5.5 上執行 Apache 2.2.3,剛剛注意到 /etc/logrotate.d/httpd 中的以下 logrotate postrotate 配置:

postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript

由於它設置為每週執行一次,因此它會為 Apache 進行硬重新載入,這似乎會殺死所有連接(對嗎?我不是專家)。將 postrotate 腳本更改為正常重啟會更安全嗎?

/usr/sbin/apachectl graceful > /dev/null

這是我的虛擬主機已經擁有的 postrotate 行為。我不明白為什麼 httpd 旋轉腳本需要重新載入。

任何有關如何正確配置的建議將不勝感激。

謝謝,拉爾夫

不,“/sbin/service httpd reload”命令不會終止所有連接,因為它不會啟動“硬重啟”。CentOS 通過服務觸發 Apache,其他作業系統通過初始化腳本觸發。對於他們所有人來說,“重新載入”意味著優雅的重啟/向 Apache 發送 USR1 信號:

“USR1 或優雅信號導致父程序建議子程序在目前請求後退出(或者如果他們沒有提供任何服務則立即退出)。父程序重新讀取其配置文件並重新打開其日誌文件。當每個孩子死去時,父母會用新一代配置中的孩子替換它,它會立即開始服務新的請求。”

引用自:https://serverfault.com/questions/262868