ServerRoot '/usr/local '
ServerRoot用于指定守护进程httpd的运行目录,httpd启动后会自动将进程的当前目录更改为此目录。因此,如果设置文件中指定的文件或目录是相对路径,则实际路径位于此服务器根定义的路径之下。
score board file/var/run/httpd . score board
Httpd使用ScoreBoardFile来维护进程的内部数据,所以通常没有必要更改该参数,除非管理员希望在一台计算机上运行多台Apache服务器,这种情况下每台Apache服务器都需要一个独立的设置文件htt pd.conf,并使用不同的ScoreBoardFile。
#ResourceConfig conf/srm.conf
#accessConfig conf/access.conf
ResourceConfig和AccessConfig这两个参数用于与使用srm.conf和access.conf设置文件的旧版本Apache兼容。如果不需要兼容性,可以将对应的设置文件指定为/dev/null,也就是说没有其他设置文件,只使用httpd.conf保存所有设置选项。
PidFile /var/run/httpd.pid
PidFile指定的文件将记录httpd守护进程的进程号。因为httpd可以自动复制自身,所以系统中有很多httpd进程,但是只有一个进程是最初启动的进程,它是其他进程的父进程。向该进程发送信号将影响所有httpd进程。httpd父进程的进程号记录在PidFILE定义的文件中。
超时300
超时定义了客户端和服务器之间的超时间隔,超过该间隔后,服务器将与客户端断开连接。
保持活动开启
在HTTP 1.0中,一个连接只能传输一个HTTP请求,KeepAlive参数用于支持HTTP 1.1中一个连接多个传输的功能,使得多个HTTP请求可以在一个连接中传输。虽然只有较新的浏览器支持此功能,但此选项是打开的。
MaxKeepAliveRequests 100
MaxKeepAliveRequests是一个连接可以发出的最大HTTP请求数。将其值设置为0将支持在一个连接中无限制的传输请求。事实上,没有一个客户端程序在一次连接中请求太多的页面,通常在没有达到上限时连接就完成了。
KeepAliveTimeout 15
KeepAliveTimeout测试连接中多个请求之间的时间。如果服务器已经完成了一个请求,但从未收到来自客户端的下一个请求,服务器将在间隔超过该参数设置的值后断开连接。
ThreadsPerChild 50
设置服务器使用的进程数。
#这是基于服务器的响应速度。如果数量太大,速度会变慢
MaxRequestsPerChild 30
对于通过子流程提供服务的Web服务,常见的方式是一个子流程服务于一个连接。由此带来的问题是,每个连接都需要生成和退出子进程的系统操作,使得这些额外的处理进程占用了计算机的大量处理能力。因此,最好的方法是一个子进程可以服务于多个连接请求,这样就不需要这些生成和退出进程的系统消耗。阿帕奇采用这种方式。一个连接完成后,子流程并不退出,而是留在系统中等待下一个服务请求,从而大大提高了性能。
但是由于处理过程中不断的申请和释放内存,次数多了会造成一些内存垃圾,影响系统的稳定性和系统资源的有效利用。因此,在一个副本处理了一定次数的请求后,可以让这个子进程的副本退出,然后再从原来的htt pd进程中复制一个干净的副本,这样可以提高系统的稳定性。这样,每个子进程处理服务请求的数量由MaxRe questPerChild定义。默认设置值为30,对于稳定性高的FreeBSD系统来说过于保守。可以设置为1000甚至更高。将其设置为0支持对每个副本进行无限制的服务处理。
为安全起见,设置为零。
#听3000
#听着12.34.56.78:80
#BindAddress *
Listen参数可以指定服务器监视除标准端口80之外的其他端口的HTTP请求。由于FreeBSD系统可以同时有多个IP地址,所以它也可以指定服务器只监听一个BindAddress /B B的IP地址的HTTP请求,如果没有配置此项,服务器将响应所有的IP请求。
即使使用BindAddress参数使服务器只响应对一个IP地址的请求,HTTP守护程序仍然可以通过使用extended Listen参数来响应对其他IP地址的请求。Listen参数的使用方式与上面的第二个示例相同。这种复杂的用法主要用于设置虚拟主机。之后,可以使用VirtualHost参数来定义具有不同IP地址的虚拟主机。但是这种用法是早期HTTP 1.0标准中设置虚拟主机的方法,每个虚拟主机都需要一个IP地址,在实际中用处不大。在HTTP 1.1中增加了对单IP地址多域名虚拟主机的支持,使得虚拟主机的设置更有意义。
#ExtendedStatus On
Apache服务器可以通过一个特殊的HTTP请求报告自己的运行状态。打开此ExtendedStatus参数可以使服务器报告更全面的运行状态信息。
-
ServeRadmin您@您的. address
也许应该在配置文件中只更改ServerAdmin。此项用于配置WWW服务器管理员的电子邮件地址,如果HTTP服务出错,该地址将返回给浏览器,以便Web用户可以联系管理员并报告错误。习惯上使用服务器上的站长作为WWW服务器的管理员,通过邮件服务器的别名机制将发送给站长的邮件发送给真正的站长。
服务器名称本地主机
默认情况下,不需要指定这个ServerName参数,服务器会通过名称解析过程自动获得自己的名称。但是如果服务器的名称解析有问题(通常是不正确的逆向解析)或者没有官方的DNS名称,也可以在这里指定I P地址。当ServerName设置不正确时,服务器无法正常启动。
通常,一个web服务器可以有多个名称,客户端浏览器可以使用所有这些名称或IP地址来访问该服务器。但是,在没有定义虚拟主机的情况下,服务器总是用自己的正式名称来响应浏览器。ServerName定义了Web服务器本身识别的正式名称,例如,一个服务器名(A类在DNS中定义)为freebsd.exmaple.org.cn,一个别名(CNAME记录)为方便记忆定义为www.exmaple.org.cn。然后Apache自动将该名称解析为freebsd.example.org.cn,这样无论客户机浏览器使用哪个名称发送请求,服务器总是告诉客户机它是freebsd.example.org.cn。一般来说这不会造成任何问题,但是考虑到服务器有一天可能会迁移到其他计算机上,而只想改变DNS中www别名的配置来完成迁移任务,所以如果你不希望客户用freebsd在他们的书签中记录这个服务器的地址,就必须使用ServerName来重新指定服务器的正式名称。
document root '/usr/local/www/data '
Root定义了存储该服务器发布的超文本文档Root的路径,客户端程序请求的UR L映射到该目录下的网页文件。该目录下的子目录,以及符号链接所指向的文件和目录,都可以通过浏览器访问,但在URL中要使用相同的相对目录名。
请注意,虽然符号连接在逻辑上位于根文档目录下,但它实际上可以位于计算机上的任何目录中。因此,客户端程序可以访问根文档目录之外的那些目录,这增加了灵活性,但降低了安全性。Apache目录的访问控制中提供了FollowSymLinks选项,用于打开或关闭支持符号连接的特性。
目录/
符号链接后的选项
AllowOverride None
/目录
Apache服务器可以根据目录控制文档的访问。然而,访问控制可以通过两种方式实现。一种是在每个目录的设置文件httpd.conf(或者access.conf)中设置,另一种是在每个目录中设置一个访问控制文件。通常,访问控制文件的名称是。htaccess。虽然两种方法都可以用来控制浏览器访问,但是使用配置文件的方法需要在每次更改后重新启动httpd守护进程,不太灵活,所以主要用于配置服务器系统的整体安全控制策略,使用起来更加灵活方便。htaccess文件来设置对特定目录的访问控制。
目录“H:/web001”
Directory语句用于定义目录的访问限制。在这里,我们可以看到它的标准语法,它定义了对目录的访问限制。上面例子中的这个设置是针对系统的根目录,设置选项允许符号连接跟随SymLinks,用AllowOverride None表示这个目录下的访问控制文件不允许更改这里的配置,这也意味着不需要检查这个目录下对应的访问控制文件。
因为Apache对一个目录的访问控制设置可以被较低级别的目录继承,所以根目录的设置会影响其较低级别的目录。注意,由于AllowOverride None的设置,Apache server不需要查看根目录下的访问控制文件,也不需要查看以下目录下的访问控制文件,直到在httpd.conf(或access.conf)中为某个目录指定了alloworroride,即允许查看访问控制文件。因为Apache继承了目录访问控制,所以如果允许从根目录查看访问控制文件,Apache必须逐级查看访问控制文件。