<-
Apache > HTTP 伺服器 > 文件 > 第 2.4 版 > 虛擬主機

檔案描述詞限制

可用的語言:  en  |  fr  |  ja  |  ko  |  tr 

在使用大量的虛擬主機時,如果每個虛擬主機都指定不同的記錄檔,Apache 可能會用盡可用的檔案描述詞(有時稱為 檔案控管)。Apache 所使用的檔案描述詞總數,每一個不同的錯誤記錄檔一個,每一個其他記錄檔指令一個,加上 10-20 個供內部使用。Unix 作業系統會限制程序可以使用檔案描述詞的數量;限制通常是 64,且通常可以增加到較大的硬限制。

雖然 Apache 試圖在需要時增加限制,但當下列情況發生時,此方法可能無法使用

  1. 你的系統未提供 setrlimit() 系統呼叫。
  2. setrlimit(RLIMIT_NOFILE) 呼叫在你的系統上無法使用(例如 Solaris 2.3)
  3. 所需的檔案描述詞數量超過硬限制。
  4. 你的系統對檔案描述詞施加其他限制,例如:只有低於 256 的 stdio 串流才能使用檔案描述詞的限制。(Solaris 2)

在發生問題時,你可以

top

拆分記錄檔

如果想要將多個虛擬主機記錄到同一個記錄檔,你可能會希望之後拆分記錄檔,以針對不同的虛擬主機執行統計分析。你可以依照下列方式完成此操作。

首先,你需要將虛擬主機資訊新增到記錄條目中。這可以使用 LogFormat 指令和 %v 變數執行。將此新增到記錄格式字串的開頭

LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost
CustomLog logs/multiple_vhost_log vhost

這將會在常見的日誌格式中建立一個日誌檔,但會將規則的虛擬主機(出現在 ServerName 指令中)置於每一行的前面。 (參閱 mod_log_config 以了解更多自訂日誌檔的方法。)

當你想要將你的日誌檔分割成其組成部分時(每個虛擬主機一個檔案),你可以使用程式 split-logfile 來完成。你可以在 Apache 發行版本的 support 目錄中找到這個程式。

使用下列指令執行此程式

split-logfile < /logs/multiple_vhost_log

使用你的 vhost 日誌檔名稱執行此程式時,將會為日誌檔中出現的每個虛擬主機產生一個檔案。每個檔案都將命名為 hostname.log

可用的語言:  en  |  fr  |  ja  |  ko  |  tr 

top

評論

注意事項
這裡不是問答區段。放在此處的評論應針對改善文件或伺服器的建議,並且如果已實作或被視為無效/離題,我們的管理員可能會將其移除。關於如何管理 Apache HTTP Server 的問題應直接傳送到我們的 IRC 頻道 #httpd(位於 Libera.chat)或發送至 我們的郵件串列