phhttpd 使用 XML 配置文件格式来表达其运行时的行为方式。关于 XML 的更多信息可以在 http://www.w3.org/XML/ 附近找到。
phhttpd 的配置围绕虚拟服务器的概念展开。对我们来说,虚拟服务器可以被认为是文档树与 phhttpd 在提供该内容时所采取的操作的结合。
phhttpd.conf 可以被认为有两个主要部分。全局部分,它定义了在整个运行的 phhttpd 服务器中一致的属性,以及多个虚拟部分,这些部分描述了仅适用于虚拟服务器的属性。将只有一个全局部分,而允许多个虚拟部分。
全局部分定义了运行服务器的属性,这些属性不适用于单个虚拟服务器。它应该被包含在
全局配置实体
设置将保存在内存中的缓存响应的最大数量。每个缓存响应都占用最少的内存。更重要的是,每个缓存响应都持有一个指向包含真实内容的文件的打开的文件描述符和一个mmap()ed 的该内容区域。当 phhttpd 注意到这两种资源中的任何一种处于压力之下时,它将开始修剪缓存,但没有办法容易地推断出它的内存正在不足。管理员可以设置此值来设置要保留在内存中的响应数量的上限。
这指定了将用于与 phhttpd_ctl 通信的文件。
这指定了将记录全局消息的文件。
这指定了包含文件扩展名到 MIME 类型映射的文件。它应该采用以下形式
text/sgml sgml sgm video/mpeg mpeg mpg mpe |
控制各种网络连接超时。“inactivity”设置连接可以空闲的时间量,超过此时间后 phhttpd 将强制断开连接。inactivity 默认为 0,这使连接空闲直到 TCP 超时生效。
启用此选项会告诉 phhttpd 使用sendfile()而不是write()从一个mmap()ed 区域写入。避免调用mmap()将缩短构建缓存响应所需的时间。
虚拟服务器可以被认为是抽象地提供内容树("docroot",在 Apache 术语中)。有一组属性用于定义虚拟服务器。这些属性用于决定哪个虚拟服务器将处理客户端的请求。然后还有一些属性定义了如何提供内容。
虚拟服务器必须有一个 docroot。配置文件中的 virtual 标签有一个 docroot 属性,必须设置该属性。
<virtual docroot=PATH> ... </virtual> |
全局配置实体
这启用 Content-MD5: 标头的生成。这大大增加了为此虚拟服务器创建缓存响应的成本,因为 MD5 函数必须应用于响应的全部内容。但是,一旦创建了响应,就没有每个请求的开销。
这将使 phhttpd 在初始化时遍历整个 docroot,并为其找到的所有文件准备缓存响应。这在正常操作期间在后台发生,因此启动 phhttpd 服务连接所需的时间不会显着增加。
此标签包围将用于标识服务器的字符串。此字符串将与来自客户端的请求中给出的 Host: 标头进行比较,或者如果给出了完整 URL,则将与完整 URL 的“主机部分”进行比较。这将与网络地址和端口对结合使用,以确定是否应由虚拟服务器服务请求。
如果向此实体中指定的网络地址发出请求,则将选择此虚拟服务器来服务传入请求。在给定的虚拟服务器中可以根据需要添加任意数量的此类实体,并且可以为任一参数指定“*”,以指示所有地址或端口都应匹配。
虚拟服务器的 logs 部分定义了在操作期间应写入的每个虚拟日志文件。请参阅以下关于日志记录的部分。