日期:2014-05-17  浏览次数:20676 次

Apache配置参考本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009

1.什么是Apache ?

Apache,是一种开放源码的HTTP服务器,可以在大多数操作系统中运行,由于其多平台和安全性所以被广泛使用,是目前最流行的Web服务器软件之一。Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发,开始Apache只是作为Netscape网页服务器之外的选择。渐渐的,它开始在功能和速度上超越其它基于Unix的HTTP服务器。从1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;而到了2005年7月这个比例上升到了69%。Apache名称的由来是为了纪念美洲印第安人土著中的一支,因为这支土著拥有最高超的作战策略和无穷的耐性。

Apache HTTP Server2.什么是?

Apache HTTP Server(也被称为Apache httpd)是Apache软件基金会创建的一个健壮的、工业级的、功能强大的、开放源代码的HTTP(Web)服务器。

二、?????????? httpd.conf中常用参数介绍

1. 连接类参数

l TimeOut

服务器在断定请求失败前等待的时间,即接收和发送数据的超时时间。

【说明】

TimeOut参数用于设置Apache在等待以下三种事件的时间:

u?? 接受一个GET请求耗费的总时间。

u?? POST或PUT请求时,接受两个TCP包之间的时间。

u?? 回应时TCP包传输中两个ACK包之间的时间。

还可以理解成Apache允许每次通过HTTP协议传输数据的最大时间。

l KeppAlive

启用HTTP持续作用。

【说明】

持续作用扩展自HTTP/1.0和HTTP/1.1的长连接特性。提供了长效的HTTP会话,用以在同一个TCP连接中进行多次请求。在某些情况下,这样的方式会对包含大量图片的HTML文件起到50%的加速作用。对于使用HTTP/1.0的客户端来说,只有客户端设置使用的时候才会使用持续作用连接。而对于HTTP/1.1的客户端来说,如果没有进行特殊指定,长连接将是默认的连接方式。

l MaxKeppAliveRequests

?一个长连接中允许的请求数量。

【说明】

该参数限制了当启用KeepAlive时,每次连接允许的请求数量。如果将此值设为0,将不限制请求的数量。这里建议最好将此值设为一个比较大的值,以确保最优的服务器性能。

l KeppAliveTimeOut

持续作用中服务器在两次请求之间的等待时间。

【说明】

Apache在关闭本次连接前等待下一次请求的时间,即在这段时间内该连接没有接收到请求就会关闭此连接。一旦收到一个请求,超时值将会被设置为KeppAliveTimeOut的值。

注意:对于高负荷的服务器来说,如果把该参数的值设置的较大可能会导致一些性能方面的问题,因为KeppAliveTimeOut的值会影响释放空闲进程、线程时间的数量,如果该值大,那么在一定时间区间内释放出来的空闲进程、线程的数量会少于该值小的,所以会降低服务器处理请求的能力,从而影响整个系统的吞吐量。

l Listen

服务器监听IP地址和端口。

【说明】

Listen参数是指Apache服务器在指定的IP地址和端口上进行监听;默认情况下Apache会在所有IP地址上监听。Listen是一个必须设置的指令。如果在配置文件中找不到这个指令,服务器将无法启动。

Listen参数还可以指定服务器在哪个端口或地址和端口的组合上进行监听请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将按照指定地址和指定的端口进行监听。

使用多个Listen参数可以指定多个不同的监听端口和/或地址端口组合。

例如,想要服务器接受80和8080端口上的请求,可以这样设置:

Listen 80
Listen 8080

为了让服务器在两个确定的地址端口组合上接受请求,可以这样设置:

Listen 192.64.182.1:80
Listen 192.64.182.5:8080

注意:多个Listen指令指定了同一个地址和端口的组合后,会导致"Address already in use"错误。

2. 系统路径管理类参数

l ServerRoot

服务器的安装基础目录。

【说明】

该参数设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。其它配置文件的相对路径都基于此目录 (比如Include或LoadModule)。

例如:

ServerRoot /etc/httpd

l DocumentRoot

组成网络上可见的主文档树的根目录。

【说明】

此参数设置了httpd服务的目录。在没有配置类似Alias这种参数的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。比如说:

DocumentRoot /etc/httpd/www/web

于是对http://www.ccb.com.cn/index.html的访问就会指向/etc/httpd/www/web/index.html。如果参数中不是绝对路径,则被假定为是相对于ServerRoot的路径。

注意:指定DocumentRoot时不应包括最后的"/"。

l Directory

可以封装一组参数,使之仅对文件空间中的某个目录及其子目录生效

【语法】

<Directory directory-path> ... </Directory>

【说明】

<Directory>和</Directory>用于封装一组参数,使其对某个目录及其子目录生效。directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串,但是通配符都不能匹配"/"字符,例如:<Directory /*/public_html>是无法匹配/home/user/public_html 的,而<Directory /home/*/public_html>却能够正确匹配。

directory-path参数必须与被访问文件所在文件系统的路径保持一致。如果有多个非正则表达式,<Directory>配置段符合并包含某文档的目录(或其父目录),那么会以短目录优先的规则进行应用。<Directory />的默认访问权限为"Allow from All",这意味着Apache没有进行访问控制,通过设置Order,Deny,Allow,AllowOverride这个几个参数可以对访问进行控制。

下面简单介绍一下这4个参数的用法。

1>???? Allow

该参数是控制哪些主机才可以访问目标。

示例:

Allow from 192.64.182.53
Allow from 192.64.182.1 192.64.182.3

表示IP地址为192.64.182.1或192.64.182.3或192.64.182.53才可以访问目标。

2>???? Deny

该参数是控制哪些主机被禁止访问目标。

示例:

Deny from 192.64.182.53
Deny from 192.64.182.1 192.64.182.3

表示IP地址为192.64.182.1或192.64.182.3或192.64.182.53则不能访问目标。

3>Order

Order参数是控制Allow和Deny参数生效顺序的,常用的取值是:Deny,Allow 和Allow,Deny。例如:

Order Deny,Allow

Deny from 192.64.182.53

Allow from 192.64.182.1 192.64.182.3

表示先考虑Deny条件再考虑Allow条件,该配置的意思是拒绝IP地址为192.64.182.53的访问,只允许192.64.182.1 和192.64.182.3的访问。