Apache 总结
一、 Apache 的配置文件分为三个部分:
Global Environment
'Main' server configuration
Virtual Hosts
二、 配置指令解释
1、 Listen 配置指令
Listen 配置指令用于指定 Apache 监听的 IP 地址和端口。这个指令是必需的,否则
Apache 无法启动。
2、 ServerName 指令设置 Apache 的主机名和端口号,使 Apache 服务器能够据以确定是否
访问自己——这里用“自己“不够准确,因为站在主机的角度来看,自己既然不是 Proxy, 访问请求到了这
里,请求的目的地址也是自己,当然就是访问自己啦。但是 Apache 提供了基于主机名的
VirtualHost的功能, 所以当需要判断请求是访问哪一个 VirtualHost 时,这个 ServerName 就起到
了区别、判断的作用。如果不使用基于主机名的 VirtualHost 的功能, ServerName 就不是那么必要
了,不过建议还是使用 ServerName 指定主机名。
ServerName 指令的格式是
ServerName ip-address:port
如果未用 ServerName 指定主机名, Apache 服务器将会尝试使用 IP 地址执行反向解析,以获
取自己的主机名 (这话是书上说的,我有些疑惑,解析自己,有必要么,一般 hosts 文件中有对应的记
录。如果主机并没有 注册 DNS,客户机只是使用 IP 地址来访问,反向解析岂不麻烦 )。如果
ServerName 配置指令未指定端口,服务器将使用来自访问请求中的端口号(但是对不被 Listen 指定
的端口的访问不会被主机——不是 Apache 服务进程接纳)。
3、 ServerRoot 配置指令
ServerRoot 指令用于设置 Apache 服务器树形目录结构的根目录,通常是 "/etc/httpd
"其中包含 conf, logs, modules 等子目录,但是其实非配置相关的文件其实并没有放在 "/etc/httpd
" 目录下,logs, modules, run 都是符号链接。这应该是为了符合 Linux 的 FHS 规范吧。
4、 User & Group
这两个配置指令指定 httpd 服务进程的属主和属组。这个是非常重要的配置指令,
Apache 提供的网页文件都需要赋予该用户读权限,否则浏览器将获取 URL 的内容。
5、 DocumentRoot
该指令用于设置 Apache 提供的访问的树形目录的根目录,DocumentRoot 是针对 host
的,所以如果设置了VirtualHost,则每个VirtualHost 都需要指定一个 DocumentRoot 。
6、 Directory & DirectoryMatch
Directory 用于设置目录的属性。通常需要为每个 VirtualHost 的 DocumentRoot 在
Directory 指令中设置属性。
Directory 指令在指定目录时可以使用 shell 通配符 " ?, *, [] ", 如果在 “ Directory “ 和
"DirectoryName" 之间加波浪号,则 "DirectoryName" 可以是正则表达式,相当于
DirectoryMatch 指令。
7、 Files & FilesMatch
类似于 Directory & DirectoryMatch ,只是针对的是文件罢了。
8、 NameVirtualHost
这个在设置 VirtualHost 时很关键。它指定主机的哪一个 IP 地址被用于VirtualHost,即
对该 IP 地址的访问请求被看作对VirtualHost 的访问请求。所以如果某个 IP 地址被用于
NameVirtualHost ,则所有该 IP 对应的且需要用于提供 Web服务的域名都应该设置为VirtualHost
( 使用 ServerName ),否则对该域名的访问将会转到该 IP 上的缺省的 VirtualHost 即第一个
VirtualHost 上。
三、 VirtualHost
第 1 页,共 6 页2011年05月16日 星期一 22时04分01秒
评论1