您的位置:首页 > 运维架构 > Apache

apache配置之基本配置

2012-09-27 09:47 225 查看
[align=left]Apache的配置由httpd.conf文件配置(如你安装Apache在/www下,则配置文件httpd.conf在/www/conf文件夹下),因此下面的配置指令都是在httpd.conf文件中修改。[/align]
[align=left] [/align]
[align=left]主站点的配置[/align]
[align=left](1) 基本配置: [/align]
[align=left] [/align]
[align=left]①ServerRoot "/mnt/software/apache2" #服务器的安装基础目录。[/align]
[align=left]【说明】该参数设置了服务器所在的目录。一般来说它将包含conf/和logs/子目录。其它配置文件的相对路径都基于此目录 (比如Include或LoadModule)。[/align]
[align=left]例如:[/align]
[align=left]ServerRoot /etc/httpd[/align]
[align=left] [/align]
[align=left]②PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。[/align]
[align=left]如果指定的不是绝对路径,那么将视为基于ServerRoot的相对路径。[/align]
[align=left]示例:PidFile /var/run/apache.pid [/align]
[align=left]【说明】这个文件通常用来给服务器父进程发送一个信号,用于关闭或重启服务器,以便重新打开ErrorLog和TransferLog文件、重新读取配置文件。[/align]
[align=left] [/align]
[align=left]③Listen 80 #服务器监听IP地址和端口。[/align]
[align=left]【说明】Listen参数是指Apache服务器在指定的IP地址和端口上进行监听;默认情况下Apache会在所有IP地址上监听。Listen是一个必须设置的指令。如果在配置文件中找不到这个指令,服务器将无法启动。[/align]
[align=left]Listen参数还可以指定服务器在哪个端口或地址和端口的组合上进行监听请求。如果只指定一个端口,服务器将在所有地址上监听该端口。如果指定了地址和端口的组合,服务器将按照指定地址和指定的端口进行监听。[/align]
[align=left]使用多个Listen参数可以指定多个不同的监听端口和/或地址端口组合。[/align]
[align=left]例如: 1想要服务器接受80和8080端口上的请求,可以这样设置:[/align]
[align=left]Listen 80[/align]
[align=left]Listen 8080 [/align]
[align=left] 2、为了让服务器在两个确定的地址端口组合上接受请求,可以这样设置:[/align]
[align=left]Listen 192.64.182.1:80[/align]
[align=left]Listen 192.64.182.5:8080[/align]
[align=left]注意:多个Listen指令指定了同一个地址和端口的组合后,会导致"Address already in use"错误。[/align]
[align=left] [/align]
[align=left]④ServerName www.jb51.net:80 #主站点名称(网站的主机名)。[/align]
[align=left] [/align]
[align=left]⑤ServerAdmin admin@jb51.net #服务器返回给客户端的错误信息中所包含的管理员邮件地址。[/align]
[align=left]【说明】该参数是在所有返回给客户端的错误信息中给出管理员的邮件地址。但也可以是一个URL地址,如果httpd不能将该参数的值识别为URL,它就会假定它是一个email-address ,并在超连接中用在mailto后面。这里推荐配置一个Email地址,如果配置的是URL一定要保证指向一个受控制的服务器,否则用户将无法确保和管理员取得联系。[/align]
[align=left]示例:ServerAdmin hradmin.zh@ccb.cn [/align]
[align=left] [/align]
[align=left]⑥DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。[/align]
[align=left]【说明】此参数设置了httpd服务的目录。在没有配置类似Alias这种参数的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。比如说:[/align]
[align=left]DocumentRoot /etc/httpd/www/web [/align]
[align=left]于是对http://www.ccb.com.cn/index.html的访问就会指向/etc/httpd/www/web/index.html。如果参数中不是绝对路径,则被假定为是相对于ServerRoot的路径。[/align]
[align=left]注意:指定DocumentRoot时不应包括最后的"/"。[/align]
[align=left] [/align]
[align=left]⑦ TimeOut [/align]
[align=left]服务器在断定请求失败前等待的时间,即接收和发送数据的超时时间。[/align]
[align=left]【说明】TimeOut参数用于设置Apache在等待以下三种事件的时间:[/align]
[align=left]ⅰ 接受一个GET请求耗费的总时间。[/align]
[align=left]ⅱ POST或PUT请求时,接受两个TCP包之间的时间。[/align]
[align=left]ⅲ 回应时TCP包传输中两个ACK包之间的时间。 [/align]
[align=left] [/align]
[align=left]还可以理解成Apache允许每次通过HTTP协议传输数据的最大时间。[/align]
[align=left] [/align]
[align=left] [/align]
[align=left]⑧ Directory[/align]
[align=left]可以封装一组参数,使之仅对文件空间中的某个目录及其子目录生效[/align]
[align=left]【语法】[/align]
[align=left]<Directory directory-path> ... </Directory>[/align]
[align=left]【说明】<Directory>和</Directory>用于封装一组参数,使其对某个目录及其子目录生效。directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串,但是通配符都不能匹配"/"字符,例如:<Directory /*/public_html>是无法匹/home/user/public_html 的,而<Directory /home/*/public_html>却能够正确匹配。[/align]
[align=left]directory-path参数必须与被访问文件所在文件系统的路径保持一致。如果有多个非正则表达式,<Directory>配置段符合并包含某文档的目录(或其父目录),那么会以短目录优先的规则进行应用。<Directory />的默认访问权限为"Allow from All",这意味着Apache没有进行访问控制,通过设置Order,Deny,Allow,AllowOverride这个几个参数可以对访问进行控制。[/align]
[align=left]以下是对主站点的目录进行访问控制:[/align]
[align=left]<Directory /> [/align]
[align=left]Options FollowSymLinks [/align]
[align=left]AllowOverride None [/align]
[align=left]Order allow,deny [/align]
[align=left]Allow from all [/align]
[align=left]</Directory> [/align]
[align=left]在上面这段目录属性配置中,主要有下面的选项:[/align]
[align=left]1、Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:[/align]
[align=left] [/align]

[align=left]常用值[/align]
[align=left]含义[/align]
[align=left]ExecCGI[/align]
[align=left]在该目录下允许执行CGI脚本[/align]
[align=left]FollowSymLinks[/align]
[align=left]在该目录下允许文件系统使用符号连接[/align]
[align=left]Indexes[/align]
[align=left]当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户[/align]
[align=left]SymLinksIfOwnerMatch[/align]
[align=left]当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问[/align]
[align=left]2、AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定)。[/align]
[align=left]【说明】当服务器发现一个.htaccess文件(由AccessFileName指定)时,它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置参数。一般情况下NONE即可。[/align]

[align=left]AllowOverride值[/align]
[align=left]含义[/align]
[align=left]None[/align]
[align=left]当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)[/align]
[align=left]All[/align]
[align=left]在.htaccess文件中可以使用所有的指令[/align]
[align=left] [/align]
[align=left]3、Allow:该参数是控制哪些主机才可以访问目标。[/align]
[align=left]示例:[/align]
[align=left]Allow from 192.64.182.53[/align]
[align=left]Allow from 192.64.182.1 192.64.182.3 [/align]
[align=left]表示IP地址为192.64.182.1或192.64.182.3或192.64.182.53才可以访问目标。[/align]
[align=left]或可用域名或子网,例如:Allow from 192.168.0.0/16[/align]
[align=left] [/align]
[align=left]4、Deny:该参数是控制哪些主机被禁止访问目标。[/align]
[align=left]示例:[/align]
[align=left]Deny from 192.64.182.53[/align]
[align=left]Deny from 192.64.182.1 192.64.182.3 [/align]
[align=left]表示IP地址为192.64.182.1或192.64.182.3或192.64.182.53则不能访问目标。[/align]
[align=left] [/align]
[align=left]5、Order:Order参数是控制Allow和Deny参数生效顺序的,常用的取值是:Deny,Allow 和Allow,Deny。例如:[/align]
[align=left]Order Deny,Allow[/align]
[align=left]Deny from 192.64.182.53[/align]
[align=left]Allow from 192.64.182.1 192.64.182.3[/align]
[align=left]表示先考虑Deny条件再考虑Allow条件,该配置的意思是拒绝IP地址为192.64.182.53的访问,只允许192.64.182.1 和192.64.182.3的访问。[/align]
[align=left]再看一个例子:[/align]
[align=left]Order Allow,Deny[/align]
[align=left]Allow from all[/align]
[align=left]Deny from 192.64.182.53[/align]
[align=left]表示只拒绝IP地址为192.64.182.53的访问。[/align]
[align=left] [/align]
[align=left]⑨ <IfModule dir_module> [/align]
[align=left]DirectoryIndex index.html index.htm index.php #主页文件的设置(本例将主页文件设置为:index.html,index.htm和index.php)[/align]
[align=left]</IfModule>[/align]
[align=left] [/align]
[align=left] (2) HTTP返头回信息配置: [/align]
[align=left]ServerTokens Prod #该参数设置http头部返回的apache版本信息,可用的值和含义如下:[/align]
[align=left]Prod:仅软件名称,例如:apache [/align]
[align=left]Major:包括主版本号,例如:apache/2 [/align]
[align=left]Minor:包括次版本号,例如:apache/2.0 [/align]
[align=left]Min:仅apache的完整版本号,例如:apache/2.0.54 [/align]
[align=left]OS:包括操作系统类型,例如:apache/2.0.54(Unix)[/align]
[align=left]Full:包括apache支持的模块及模块版本号,例如:Apache/2.0.54 (Unix) mod_ssl/2.0.54 OpenSSL/0.9.7g [/align]
[align=left]ServerSignature Off #在页面产生错误时是否出现服务器版本信息。推荐设置为Off [/align]
[align=left] [/align]
[align=left](3) 持久性连接设置[/align]
[align=left]1 KeepAlive On #开启持久性连接功能。即当客户端连接到服务器,下载完数据后仍然保持连接状态。[/align]
[align=left]【说明】持续作用扩展自HTTP/1.0和HTTP/1.1的长连接特性。提供了长效的HTTP会话,用以在同一个TCP连接中进行多次请求。在某些情况下,这样的方式会对包含大量图片的HTML文件起到50%的加速作用。对于使用HTTP/1.0的客户端来说,只有客户端设置使用的时候才会使用持续作用连接。而对于HTTP/1.1的客户端来说,如果没有进行特殊指定,长连接将是默认的连接方式。[/align]
[align=left] [/align]
[align=left]2 MaxKeepAliveRequests 100 #一个连接服务的最多请求次数。[/align]
[align=left]【说明】该参数限制了当启用KeepAlive时,每次连接允许的请求数量。如果将此值设为0,将不限制请求的数量。这里建议最好将此值设为一个比较大的值,以确保最优的服务器性能。[/align]
[align=left] [/align]
[align=left]3 KeepAliveTimeout 30 #持续连接多长时间,该连接没有再请求数据,则断开该连接。缺省为15秒。 (持续作用中服务器在两次请求之间的等待时间。)[/align]
[align=left]【说明】Apache在关闭本次连接前等待下一次请求的时间,即在这段时间内该连接没有接收到请求就会关闭此连接。一旦收到一个请求,超时值将会被设置为KeppAliveTimeOut的值。[/align]
[align=left]注意:对于高负荷的服务器来说,如果把该参数的值设置的较大可能会导致一些性能方面的问题,因为KeppAliveTimeOut的值会影响释放空闲进程、线程时间的数量,如果该值大,那么在一定时间区间内释放出来的空闲进程、线程的数量会少于该值小的,所以会降低服务器处理请求的能力,从而影响整个系统的吞吐量。[/align]
[align=left] [/align]
[align=left](4Alias URL映射参数[/align]
[align=left]Alias:将URL映射到文件系统的特定区域。[/align]
[align=left]语法:Alias URL-path file-path|directory-path[/align]
[align=left]【说明】Alias参数使文件可以被存储在DocumentRoot以外的本地文件系统中。以(%已解码的)url-path路径开头的URL可以被映射到以directory-path开头的本地文件中。[/align]
[align=left]示例:[/align]
[align=left]Alias /image /etc/var/www/images[/align]
[align=left]将不会被匹配。[/align]
[align=left]对"http://www.ccb.com/image/foo.gif"的请求,服务器将返回"/etc/var/www/images/foo.gif"文件。由于该参数是匹配完整路径,所以请求是"http:// www.ccb.com /imagefoo.gif"[/align]
[align=left] [/align]
[align=left]注意:如果url-path中有后缀"/",则服务器要求有后缀"/"以扩展此别名。也就是说"Alias /icons/ /usr/local/apache/icons/"并不能对"/icons"实现别名.[/align]
[align=left]注意,可能需要额外指定一个<Directory>段来覆盖别名的最终对象。由于只有出现在<Directory>段之前的别名才会被检测,所以它只对最终对象生效。如果对在DocumentRoot之外的某个目录建立了一个Alias ,则可能需要明确的对目标目录设定访问权限。[/align]
[align=left]示例:[/align]
[align=left]Alias /image /ftp/pub/image[/align]
[align=left]<Directory /ftp/pub/image>[/align]
[align=left]Order allow,deny[/align]
[align=left]Allow from all[/align]
[align=left]</Directory>[/align]
[align=left] [/align]
[align=left](5CGI设置[/align]
[align=left]ScriptAlias /cgi-bin/ "/mnt/software/apache2/cgi-bin/" # 访问时可以:http://www.jb51.net/cgi-bin/ 。但是该目录下的CGI脚本文件要加可执行权限![/align]
[align=left]<Directory "/usr/local/apache2/cgi-bin"> #设置目录属性[/align]
[align=left]AllowOverride None [/align]
[align=left]Options None [/align]
[align=left]Order allow,deny [/align]
[align=left]Allow from all [/align]
[align=left]</Directory> [/align]
[align=left] [/align]
[align=left](6)个人主页的设置 (public_html) [/align]
[align=left]UserDir public_html (间用户的主页存储在用户主目录下的public_html目录下 URL http://www.jb51.net/~bearzhang/file.html 将读取 /home/bearzhang/public_html/file.html 文件) [/align]
[align=left]chmod 755 /home/bearzhang #使其它用户能够读取该文件。[/align]
[align=left]UserDir /var/html (the URL http://www.jb51.net/~bearzhang/file.html 将读取 /var/html/bearzhang/file.html) [/align]
[align=left]UserDir /var/www/*/docs (the URL http://www.jb51.net/~bearzhang/file.html 将读取 /var/www/bearzhang/docs/file.html) [/align]
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apache配置