85 FreeBSD连载:配置Apache服务器(2)( 七 )


#ErrorDocument 500 "The server made a boo boo.#ErrorDocument 404 /missing.html#ErrorDocument 404 /cgi-bin/missing_handler.pl#ErrorDocument 402 http://some.other_server.com/subscription_info.html如果客户请求的网页不存在,或者没有访问权限等情况发生时,服务器将产生一个错误代码,同时也将回应客户浏览器一个标识错误的网页 。ErrorDocument就用于设置当出现哪个错误时应该回应客户浏览器那些内容,ErrorDocument的第一个参数为错误的序号,第二个参数为回应的数据,可以为简单的文本,本地网页,本地CGI程序,以及远程主机上的网页 。
BrowserMatch "Mozilla/2" nokeepaliveBrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0BrowserMatch "RealPlayer 4.0" force-response-1.0BrowserMatch "Java/1.0" force-response-1.0BrowserMatch "JDK/1.0" force-response-1.0BrowserMatch命令为特定的客户程序,设置特殊的参数,以保证对老版本浏览器的兼容性,并支持新浏览器的新特性 。
##SetHandler server-status#Order deny,allow#Deny from all#Allow from .your_domain.com###SetHandler server-info#Order deny,allow#Deny from all#Allow from .your_domain.com###Deny from all#ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi#用于设置访问控制的设置主要是针对目录和文件进行设置的,然而也可以针对不同的URL进行访问控制的设置,这样就不必担心ScriptAlias、Alias是否将路径设置到了受控制的目录之外了 。针对URL进行控制的语句为Location语句,这样不但能对服务器上的文件、CGI提供保护,此外,它还能保护不能找到对应文件,而是由服务器本身提供的特殊功能URL 。http://servername/server-status用于报告当前Apache服务器的状态,http://servername/server-info用于报告Apache服务器的统计信息 。与此相关的设置还有ExtendedStatus参数,可以让服务器输出更详细的的报告 。
##ProxyRequests On###Order deny,allow#Deny from all#Allow from .your_domain.com##ProxyVia On#CacheRoot "/usr/local/www/proxy"#CacheSize 5#CacheGcInterval 4#CacheMaxExpire 24#CacheLastModifiedFactor 0.1#CacheDefaultExpire 1#NoCache a_domain.com another_domain.edu joes.garage_sale.com #Apache服务器本身就具备代理的功能,然而这要求加载入mod_proxy模块 。这能使用IfModule语句进行判断,如果存在mod_proxy模块,就使用ProxyRequests打开代理支持 。此后的Directory用于设置对Proxy功能的访问权限设置,以及用于设置缓冲的各个参数设置 。
虚拟主机
#NameVirtualHost 12.34.56.78:80#NameVirtualHost 12.34.56.78##ServerAdmin webmaster@host.some_domain.com#DocumentRoot /www/docs/host.some_domain.com#ServerName host.some_domain.com#ErrorLog logs/host.some_domain.com-error_log#CustomLog logs/host.some_domain.com-access_log common# ##缺省设置文件中的这些内容是用于设置命名基础的虚拟主机服务器时使用 。其中NameVirtualHost来指定虚拟主机使用的IP地址,这个IP地址将对应多个DNS名字,如果Apache使用了Listen参数控制了多个端口,那么就可以在这里加上端口号以进一步进行区分对不同端口的不同连接请求 。此后,使用VirtualHost语句,使用NameVirtualHost指定的IP地址作参数,对每个名字都定义对应的虚拟主机设置 。
虚拟主机是在一台Web服务器上,可以为多个单独域名提供Web服务,并且每个域名都完全独立,包括具有完全独立的文档目录结构及设置,这样域名之间完全独立,不但使用每个域名访问到的内容完全独立,并且使用另一个域名无法访问其他域名提供的网页内容 。
虚拟主机的概念对于ISP来讲非常有用,因为虽然一个组织可以将自己的网页挂在具备其他域名的服务器上的下级往址上,但使用独立的域名和根网址更为正式,易为众人接受 。传统上,必须自己设立一台服务器才能达到单独域名的目的,然而这需要维护一个单独的服务器,很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器 。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器 。

推荐阅读