<-
Apache HTTP 服务器 2.4 > 文件描述符限制

文件描述符限制

当使用大量虚拟主机时,如果每个虚拟主机指定不同的日志文件,Apache可能会用完可用的文件描述符(有时称为文件句柄)。对于每个不同的错误日志文件,Apache使用的文件描述符总数为一个,对于每个其他日志文件伪指令,总数为10,供内部使用。Unix操作系统限制了进程可以使用的文件描述符的数量。该限制通常为64,通常可以增加到较大的硬限制。

尽管Apache尝试根据需要增加限制,但在以下情况下可能无法使用:

  1. 您的系统不提供setrlimit() 系统调用。
  2. setrlimit(RLIMIT_NOFILE)调用在您的系统上不起作用(例如Solaris 2.3)
  3. 所需的文件描述符数量超过了硬限制。
  4. 您的系统对文件描述符施加了其他限制,例如仅使用低于256的文件描述符对stdio流进行了限制。(Solaris 2)

如果出现问题,您可以:

最佳

拆分日志文件

如果要将多个虚拟主机记录到同一日志文件中,则可能需要在以后拆分日志文件,以便对各种虚拟主机进行统计分析。这可以通过以下方式实现。

首先,您需要将虚拟主机信息添加到日志条目中。这可以使用 LogFormat 指令和%v变量来完成。将此添加到日志格式字符串的开头:

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

这将以通用日志格式创建一个日志文件,但是在ServerName每一行之前都添加了规范的虚拟主机(无论指令中出现了什么 )。(有关mod_log_config更多信息,请参见自定义日志文件。)

当您希望将日志文件拆分为各个组成部分(每个虚拟主机一个文件)时,可以使用该程序split-logfile来完成此操作。您可以support在Apache发行版的目录中找到该程序。

使用以下命令运行该程序:

split-logfile < /logs/multiple_vhost_log

使用您的vhost日志文件的名称运行该程序时,它将为出现在日志文件中的每个虚拟主机生成一个文件。每个文件都会被调用hostname.log

可用语言: zh  |  fr  |  ja  |  ko  |  TR 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。