Apache服务器的设置文件位于/etc/httpd/conf/目录下,传统的是使用三个配置文件httpd.conf、access.conf和srm.conf来配置Apache服务器的行为。但是在1.3.20版之后,Apache将原来的http.conf、srm.conf与access.conf中的所有配置参数都放在一个配置文件httpd.conf中。只是为了与以前版本兼容,才使用3个配置文件。而提供的access.conf和srm.conf文件中没有具体的设置。
httpd.conf提供了最基本的服务器设置,如程序httpd运行的技术描述。并且它还包含了以前srm.conf和access.conf文件的配置参数。记录了服务器各种文件的MIME类型,以及如何支持这些文件,还有用于配置服务器的访问权限,控制不同用户和计算机的访问限制等。
在httpd.conf文件中有一系列标记命令。这些命令指示Apache Web服务器应该如何配置它本身和模块。当然这其中大多有其默认值,通常不需要改动。除了空行和字符“#”开头的行,文件中的每一行都可以看作是一个命令。该文件有3个主要的部分组成:
· 全局环境配置部分。
· 主服务器配置部分。
· 虚拟主机配置部分。
httpd.conf首先定义了一些httpd进程运行时需要的参数,来决定其运行方式和运行环境。在图形界面中使用文本编辑器打开/etc/httpd/conf/下的httpd.conf文件,对文件的内容进行查看,如图5-6所示。
图5-6 对文件内容进行查看
下面介绍全局环境变量的具体意义。
ServerRoot记录了配置文件、日志文件和错误记录文件所在的顶级目录。httpd在启动之后自动将进程的当前目录改变为这个目录。
ServerRoot "/ect/httpd"
PidFile指定的文件将记录httpd进程的进程号。由于httpd能自动复制自身,所以系统中会有多个httpd进程,但只有一个进程为最初启动的进程。它是其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。
Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。如果发现站点接受客户端的请求相当慢,可以增加Timeout的值。
在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是建议打开使用这个选项。如果允许客户端使用这个功能,它的值需要设置为On。
MaxKeepAliveRequests用于限制客户端使用同一个连接进行的请求数量。将其值设为0将允许在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。如果发现客户端要多次重复连接,可适当地增加这个数字,但不建议设置为0。
KeepAliveTimeout命令的作用为测试多次请求传输之间的时间。如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。这样可以防止个别客户端长时间占用服务器资源。
在使用子进程处理HTTP请求的Web服务器上,由于首先生成子进程才能处理客户的请求,因此反应时间就有一点延迟。于是Apache采用了动态调整的方式,随时变动提供服务的子程序的数目,维持足够的子程序,处理目前的负载,并保有备用的子程序随时待命以便处理新增加的负载。
可以用参数MinSpareServers来设置最少的空余子程序数目,以及使用参数MaxSpare-
Servers来限制最多的空闲子进程数目。这样可以合理地分配系统资源,不会出现进程紧缺造成客户端长时间等待,或者闲置子进程数目过多造成系统资源浪费的情况。此功能称作Server-Pool容量规则。
MinSpareServers 5
MaxSpareServers 20
StartServers为当服务器启动时,会执行8个httpd子进程副本。这个参数和上面的Min-
SpareServers和MaxSpareServers参数都是用于启动空闲子进程以提高服务器的反应速度的。这个参数应该设置为前两个值之间的一个数值,不在此范围的数值都没有意义。
Maxclients命令是用于设定网站允许同时在线的人数。当同时连入的客户数量过多时,会降低系统访问性能,因此可通过设置此数来限制连接数量。
MaxRequestsPerChild限制每个子程序在结束前所能提出的请求数量,达到此项限制时,该子程序就会结束。
该命令用于防止长时间运行Apache可能会出现的问题。在一些操作系统上,有内存问题和资源泄漏问题。这些泄漏将会导致像Apache等程序出现问题,限制任何一个Apache服务器能够处理请求的数量,可以将这些问题最小化。
用来指定httpd监控的通信端口。Listen命令让用户自行指定Apache服务器监控的IP地址或通信端口。默认为80端口。
#Listen 12.34.56.78:80
Listen 80