Linux下Apache配置文件详解

来源:互联网 发布:网络机顶盒十大排名 编辑:程序博客网 时间:2024/05/22 15:24

如果您是一位Linux爱好者,您可能已经掌握了基本的Linux的知识与操作,毫无疑问,您并不会去满足这样小小的成就;Linux为何如此的流行?其最大的特点莫过于功能强大,性能稳定的服务器应用了。像WWW,MAIL,FTP, DNS和SMB等;在本文中,我们从Web服务器的一些最基本的操作入手,从初学者使用的态度,让大家正确充分的认识apache(Unix平台最流行的WEB服务器平台)等服务器;

1. 关于WWW和URL;

WWW是World Wide Web的缩写,翻译过来就是全球广域网,它可以接合文字、图形、影像及声音等多媒体,并通过超文本(HyperText)的方式,将信息通过Internet传递到世界各处;
例如:在浏览器的地址栏上输入“http://www.linuxsir.org”,就可以登录的linuxsir的网站上浏览信息,其中“http: //www.linuxsir.org”是URL(Uniform Resource Locator ,同一资源定位器),“www.linuxsir.org”是主机名称,也就是DNS中的FQDN(Fully Qualified Domain Name,完全符合标准的域名),即主机名称加上域名所得的一个独一无二的Internet上面的名字。由于计算机仅识别网络中的IP,所以,linuxsir站的真实IP就是通过DNS解析www.linuxsir.org而找到的,然后经过www的协议将数据传到你的眼前;

1.1 URL的格式;

<协议>://<主机地址>[:端口]/<目录>

1.1.1 协议;

包括http,ftp,news,gopher和telnet几种常见的协议。其中,http是利用“主机的http端口,通常为80端口”,ftp是利用“主机的ftp端口,通常为21端口”。注意:80和21都是主机所提供的服务,而不是客户端的端口。

1.1.2 主机地址;

当输入主机名(域名)时,必须要让该主机名称可以经由翻译器得到对应的IP。翻译器是/etc/hosts或者是/etc/resolv.conf里面的设置对外提供正常的www服务器时,主机名称就必须要让大家可以翻译到IP,这就需要去申请一个合法的域名;

1.1.3 目录;

也就是URI(Uniform Resource Indicator ,统一资源定位符),如果你要去的网站网页在主页所在目录的下面,那么你直接输入目录与网页的名称,就可以直接取得那个网页的数据。若只输入目录与网页的名称,并没有输入网页名称,则服务器端会自动地判断(跟服务器自己的设置有关),该目录下是否有设置为默认的网页名称;

1.1.4 端口;

当连接某个网站时,输入 “http://that.host.name”就会主动地利用端口80来尝试连接对方的主机,但如果不想使用该端口呢。举个例子来说,例如您的网站使用的是8080端口来进行www的服务,那么除非您使用了防火墙进行端口对应,否则直接在地址栏输入“http://your.host.name”结果将无法连接到你的www服务器,因为它会主动连接到端口80,所以这里就要告诉浏览器,向服务器请求服务的是哪个端口。即写成 “http://your.host.name:8080”才可以连接到对方的端口8080;

2. www主机系统的类型;

大致上可以分两种:

一种是Windows系统的IIS+MS的SQL+ASP WWW服务器,这种www主机假设上比较容易,不过由于windows的某些特性,所以很容易被黑客所破坏;

另外一种则是Linux系统上的apache(Unix平台最流行的WEB服务器平台)+MySQL(和PHP搭配之最佳组合)(PostgreSQL)+PHP的www服务器(简称LAMP),这种服务器架设上有一定程度的困难,尤其是在升级与维护方面,但是架设妥当的话,它的硬件要求、性能、安全性等方面,则相对较佳,下面我们就来主要介绍一下apache(Unix平台最流行的WEB服务器平台)的架设;

2.1 apache(Unix平台最流行的WEB服务器平台)的历史与前景;

1995年,美国国家计算机安全协会(NCSA)的开发者创建了NCSZ全球网络服务软件,其最大的特点是HTTP精灵程序,它比当时的CERN服务器更容易由源码来配置和创建,又由于当时其他服务器软件的缺乏,他很快流行起来。但是后来,该服务器的核心开发人员几乎都离开了NCSA,一些使用者们自己成立了一个组织来管理他们编写的补丁,于是apache(Unix平台最流行的WEB服务器平台) Group应运而生。他们把该服务器软件称为apache(Unix平台最流行的WEB服务器平台)。apache(Unix平台最流行的WEB服务器平台)源于A patchy server的读音,意思是充满补丁的服务器。如今apache(Unix平台最流行的WEB服务器平台)慢慢地已经成为Internet上最流行的Web服务器软件了。在所有的Web服务器软件中,apache(Unix平台最流行的WEB服务器平台)占据绝对优势,远远领先排名第二的Microsoft IIS。如果你对它感兴趣,你可以访问apache(Unix平台最流行的WEB服务器平台)的官方网站:http://www.apache(Unix平台最流行的WEB服务器平台).org。apache(Unix平台最流行的WEB服务器平台)作为自由软件之一,像其他自由软件一样,他们都是由许许多多的自由开发人员投入了大量的时间和精力来实现并逐步完善的,所以我们有理由相信apache(Unix平台最流行的WEB服务器平台)的发展前景会更好。

2.2 apache(Unix平台最流行的WEB服务器平台) 2的安装;

软件的安装并不困难,您可以在www.apache(Unix平台最流行的WEB服务器平台).org上下载源码包进行安装,也可以使用各操作系统自带的软件包管理软件进行安装,比如我的系统是Ubuntu,那么就可以在终端中输入:
xiaop@xiaop-laptop:~$ sudo apt-get install apache(Unix平台最流行的WEB服务器平台)2

不同的系统有自己的软件包管理方式,其实都大同小异;

2.2.1 使用源代码安装;

(1) 获得源代码
xiaop@xiaop-laptop:~# lynx http://www.apache(Unix平台最流行的WEB服务器平台).org/dist/httpd/httpd-2_0_NN.tar.gz

NN表示当前所用的版本号

(2) 解压缩
xiaop@xiaop-laptop:~# gzip -d httpd-2_0_NN.tar.gz

或者
xiaop@xiaop-laptop:~# tar xvf httpd-2_0_NN.tar

(3) 配置.
xiaop@xiaop-laptop:~httpd-2_0_NN# ./configure –prefix= /usr/local/apache(Unix平台最流行的WEB服务器平台)

表示apache(Unix平台最流行的WEB服务器平台)将安装在/usr/local/apache(Unix平台最流行的WEB服务器平台)目录下

(4) 编译与安装
xiaop@xiaop-laptop:~httpd-2_0_NN# make
xiaop@xiaop-laptop:~httpd-2_0_NN# make install

(5) 测试
xiaop@xiaop-laptop:~httpd-2_0_NN# /usr/local/apache(Unix平台最流行的WEB服务器平台)/bin/apache(Unix平台最流行的WEB服务器平台)ctl start

3. apache(Unix平台最流行的WEB服务器平台) 2 的配置;

安装完apache(Unix平台最流行的WEB服务器平台)2后,可以在/etc/apache(Unix平台最流行的WEB服务器平台)2/目录下查看文件:

xiaop@xiaop-laptop:/etc/apache(Unix平台最流行的WEB服务器平台)2$ ls -lh
总用量 35K
-rw-r–r– 1 root root 24K 2007-01-16 02:10 apache(Unix平台最流行的WEB服务器平台)2.conf
drwxr-xr-x 2 root root 104 2007-06-12 21:07 conf.d
-rw-r–r– 1 root root 895 2007-01-16 02:11 envvars
-rw-r–r– 1 root root 0 2007-05-17 17:34 httpd.conf
drwxr-xr-x 2 root root 2.5K 2007-07-18 08:43 mods-available
drwxr-xr-x 2 root root 608 2007-05-17 17:36 mods-enabled
-rw-r–r– 1 root root 10 2007-05-17 17:34 ports.conf
drwxr-xr-x 2 root root 72 2007-05-19 16:47 sites-available
drwxr-xr-x 2 root root 80 2007-05-17 17:34 sites-enabled

3.1 apache(Unix平台最流行的WEB服务器平台)2.conf;

apache(Unix平台最流行的WEB服务器平台) 2.0的主配置文件为apache(Unix平台最流行的WEB服务器平台)2.conf; 我的配置文件保存在/etc/apache(Unix平台最流行的WEB服务器平台)2/apache(Unix平台最流行的WEB服务器平台)2.conf;
查看此文件会在第184行附近发现下面的内容:
# Include module configuration:
Include /etc/apache(Unix平台最流行的WEB服务器平台)2/mods-enabled/*.load
Include /etc/apache(Unix平台最流行的WEB服务器平台)2/mods-enabled/*.conf
# Include all the user configurations:
Include /etc/apache(Unix平台最流行的WEB服务器平台)2/httpd.conf
# Include ports listing
Include /etc/apache(Unix平台最流行的WEB服务器平台)2/ports.conf
# Include generic snippets of statements
Include /etc/apache(Unix平台最流行的WEB服务器平台)2/conf.d/

可以看出apache(Unix平台最流行的WEB服务器平台)2 根据配置功能的不同, 对配置文件进行了分割, 这样更利于管理;

3.2 conf.d ;

下为配置文件的附加片断,默认情况下, 仅提供了 charset 片断,

xiaop@xiaop-laptop:/etc/apache(Unix平台最流行的WEB服务器平台)2/conf.d$ cat charset
AddDefaultCharset UTF-8

如有需要我们可以将默认编码修改为 GB2312, 即文件的内容为: AddDefaultCharset GB2312

3.3 httpd.conf ;

通常是一个空文件,以后设置时可以加入以下指令;

下面我们来看一下httpd.conf中的几条指令,“#”后加入了注释说明;
Port 80 #定义了web服务器的侦听端口,默认值为80,它是TCP网络端口之一。若写入多个端口,以最后一个为准。
User apache(Unix平台最流行的WEB服务器平台) #一般情况下,以nobody用户和nobody组来运行web服务器,因为web
Group apache(Unix平台最流行的WEB服务器平台) # 服务器发出的所有的进程都是以root用户身份运行的,存在安全风险。
ServerAdmin root@localhost #指定服务器管理员的E-mail地址。服务器自动将错误报告到该地址。
ServerRoot /etc/httpd #服务器的根目录,一般情况下,所有的配置文件在该目录下
ServerName new.host.name:80 #web客户搜索的主机名称
KeepAliveTimeout 15 #规定了连续请求之间等待15秒,若超过,则重新建立一条新的TCP连接
MaxKeepAliveRequests 100 #永久连接的HTTP请求数
MaxClients 150 #同一时间连接到服务器上的客户机总数
ErrorLog logs/error_log #用来指定错误日志文件的名称和路径
PidFile run/httpd.pid #用来存放httpd进程号,以方便停止服务器。
Timeout 300 #设置请求超时时间,若网速较慢则应把值设大。
DocumentRoot /var/www/html # 用来存放网页文件

3.4 magic ;

文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它;

3.5 ports.conf ;

则为服务器监听IP和端口设置的配置文件,

xiaop@xiaop-laptop:/etc/apache(Unix平台最流行的WEB服务器平台)2$ cat ports.conf
Listen 80

3.6 mods-available ;

目录下是一些.conf和.load 文件, 为系统中可以使用的加载各种模块的配置文件, 而mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache(Unix平台最流行的WEB服务器平台)2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件来加载模块。同时系统还提供了两个命令 a2enmod 和 a2dismod用于维护这些符号连接。这两个命令由 apache(Unix平台最流行的WEB服务器平台)2-common 包提供。命令各式也非常简单: a2enmod [module] 或 a2dismod [module]

3.7 sites-available ;

目录下为配置好的站点的配置文件, sites-enabled 目录下则是指向这些配置文件的符号连接, 系统通过这些符号连接来起用站点 sites-enabled目录下的符号连接附有一个数字前缀, 如000-default, 这个数字用于决定启动顺序, 数字越小, 启动优先级越高. 系统提供了两个命令 a2ensite 和 a2dissite 用于维护这些符号连接。这两个命令由 apache(Unix平台最流行的WEB服务器平台)2-common 包提供;

3.8 /var/www ;

默认情况下将要发布的网页文件应该置于/var/www目录下,这一默认值可以同过主配置文件中的DocumnetRoot 选项修改

4. apache(Unix平台最流行的WEB服务器平台)的管理;

4.1 启动和停止apache(Unix平台最流行的WEB服务器平台);

root@xiaop-laptop:/#/etc/init.d/apache(Unix平台最流行的WEB服务器平台)2 start
root@xiaop-laptop:/#/etc/init.d/apache(Unix平台最流行的WEB服务器平台)2 stop

4.2 apache(Unix平台最流行的WEB服务器平台)的日志文件;

apache(Unix平台最流行的WEB服务器平台)的日至文件主要包括访问日志和错误日志。访问日志记录了该服务器所有的请求的过程,主要记录的是客户的信息,通过它我们可以知道什么人访问了该网站,什么时候访问的,访问的内容是什么等等。错误日志则是记录了服务器出错的细节和如何处理等。日志文件的位置是由上述主配置文件httpd.conf来规定的。下面举一个例子来说明它的格式:

一条错误信息:
[Mon sep 22 14:32:52 2003] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

下面我们来看看这个错误信息都表示什么:
[Mon sep 22 14:32:52 2003] #错误发生的时间
[error] #表示错误的级别。有debug,info,notice,warn,error,crit,alert,emerg,这些级别由低到高表示了错误的严重性
[client 127.0.0.1] #表示客户端IP地址
client denied by server configuration: /export/home/live/ap/htdocs/test #标是错误的具体信息

访问日志的写法:
127.0.0.1 - xiaop [22/sep/2007:13:55:36 -0800] “GET /apache(Unix平台最流行的WEB服务器平台)_pb.gif HTTP/1.0″ 200 2326

注:

127.0.0.1 #表示访问这台服务器的客户端IP地址。

xiaop #表示用户的登录名。

[22/sep/2003:13:55:36 -0800] #服务器完成客户端请求的时间,格式为[日/月/年:小时:分钟:秒 时区]

“GET /apache(Unix平台最流行的WEB服务器平台)_pb.gif HTTP/1.0″ #表示客户端访问该资源所使用的方法

200 #记录的是服务器返回给客户的状态码; 200表示成功,以4打头的表示访问出错

2326 #表示发给客户端的总字节数。若是“—”表示没有找到访问资源

但在实际应用中,对于大型网站,日志文件往往增长的很快,不利于我们查询,降低服务器的效率,而且占用大量的磁盘空间,所以我们必须对日志进行定期的维护;

5. 配置虚拟主机;

虚拟主机是在一台www服务器上为多个单独的域名提供www服务,每个域名具有自己的目录和配置,相当于将一台主机分为多台主机,虚拟主机技术对于主机数量不足,但又想为不同的用户提供独立的Web服务的需求非常有效。而对于一个公司,利用价格昂贵的服务器只提供一种域名服务,似乎是不明智的,而现在越来越多的公司喜欢在一台服务器上使用多个域名服务,架设不同的网站,这样做的好处是显而易见。

apache(Unix平台最流行的WEB服务器平台)有两种方式支持虚拟主机,一种是基于IP的虚拟主机,另一种是基于名字的虚拟主机。基于名字的虚拟主机使用相同的IP地址来配置不同的虚拟主机,这就弥补了因IP地址不足而带来的问题。基于名字的虚拟主机的配置相当简单,你只需配置你得DNS服务器使每个主机名对应正确的IP地址,然后再配置 apache(Unix平台最流行的WEB服务器平台) HTTP Server使它能认识不同的主机名就可以了。

假设我们组建了一家多媒体制作公司,有一台apache(Unix平台最流行的WEB服务器平台)服务器和一个IP地址:192.168.1.1 要运行两种业务,一种为电子商务网站,域名为www.business.media.com ,另一种为教学网站,域名为www.teaching.media.com 。先在DNS服务器中把域名www.business.media.com和www.teachin….conf就可以了。

NameVirtualHost 192.168.0.1
ServerName www.business.media.com
DocumentRoot /var/www/html/business
ServerName www.teaching.media.com
DocumentRoot /var/www/html/teaching

而基于IP的虚拟主机则要求使用不同的IP地址来区别不同的虚拟主机,这就要求使用多块网卡,把不同的IP地址捆绑到不同的网卡上,或者在一块网卡上捆绑多个IP地址。假设我们主机的IP地址为192.168.0.1(www.media.com),另外有两个IP地址别:


ServerAdmin webmaster@ business.media.com
DocumentRoot /var/www/html/business
ServerName www.business.media.com
ErrorLog /var/www/html/business/logs/error_log
TransferLog /var/www/html/business/logs/access_log
ServerAdmin webmaster@teaching.media.com
DocumentRoot /var/www/html/teaching
ServerName www.teaching.media.com
ErrorLog /var/www/html/teaching/logs/error_log
TransferLog /var/www/html/teaching/logs/access_log

6. 配置apache(Unix平台最流行的WEB服务器平台)代理;

代理服务器是网络信息服务的中转站。如果我们把apache(Unix平台最流行的WEB服务器平台)代理服务器形象地比喻成代理商的话,消费者向代理商购买东西时,如果代理商有的话,可直接卖给消费者,若没有,则代理商向厂家进货,再卖给消费者。
这样做有以下几点好处:

(1)提高了访问速度;
(2)充当防火墙,增加了安全性;
(3)可以过滤一些不良网站;
(4)具有缓存功能;
(5)节省IP开销;

代理服务器可分为两种类型:客户端代理和服务器端代理;

下面我们在讲解几个指令后举例说明各自的配置方法;
ProxyRequest On/Off #启用或者禁用apache(Unix平台最流行的WEB服务器平台)代理服务。
CacheRoot “/etc/httpd/proxy” #代理缓存的根目录。
CacheSize 5 #代理缓存的大小。
CacheGcInterval 4 #设定运行管理缓存的无用数据搜集程序的时间间隔
CacheMaxExpire 24 #文件过期时间。
CacheDefaultExpire 1 #指定未包含过期信息文件的有效期。
NoCache a-domain.com another-domain.edu #该网站的文件将不被缓存。

6.1 客户端代理的配置;

(1) 修改/etc/httpd/conf/httpd.conf中的相关指令
(2) 修改/etc/httpd/conf/httpd.conf,添加对代理目录的访问控制

Order deny,allow
Deny from all
Allow from .your-domain.com

(3) 重启httpd

6.2 服务器端代理的配置;

服务器端代理与客户端代理不同,它是在防火墙上安装apache(Unix平台最流行的WEB服务器平台)服务器,使用它提供对WWW服务器的代理访问。这种方法把WWW服务器与外部隔开,提高了安全性,而对用户来说,好像没有变化一样。假设在内部局域网中 WWW服务器的IP地址为192.168.0.2,防火墙主机内部IP地址为 192.168.0.5,外部IP地址为192.9.202.1。

6.2.1 配置防火墙上的apache(Unix平台最流行的WEB服务器平台);

(1) 在/etc/httpd/conf/httpd.conf中添加虚拟主机。


ServerAdmin webmaster@business.media.com
DocumentRoot /www/docs/business.media.com
ServerName www.business.media.com
ErrorLog logs/business.media.com-error_log
CustomLog logs/business.media.com-log_common

(2) 配置局域网中的DNS服务器,把www.business.media.com指向192.9.201.1。

6.2.2 配置局域网内部WWW服务器;

在Linux环境下,有一个非常流行的代理服务器软件——Squid。他的功能非常的强大,支持HTTP,FTP,Gopher,SSL,和WAIS等协议的代理,而且设置简单,只需再配置文件中稍稍改动就可以了;

### Section 1: Global Environment
  //当服务器响应主机头(header)信息时显示Apache的版本和操作系统名称
  ServerTokens OS
  //设置服务器的根目录
  ServerRoot “/etc/httpd”
  
  #ScoreBoardFile run/httpd.scoreboard
  
  //设置运行Apache时使用的PidFile的路径
  PidFile run/httpd.pid
  
  //若300秒后没有收到或送出任何数据就切断该连接
  Timeout 300
  
  //不使用保持连接的功能,即客户一次请求连接只能响应一个文件
  /建议用户将此参数的值设置为On,即允许使用保持连接的功能
  KeepAlive Off
  
  //在使用保持连接功能时,设置客户一次请求连接能响应文件的最大上限
  MaxKeepAliveRequests 100
  
  //在使用保持连接功能时,两个相邻的连接的时间间隔超过15秒,就切断连接
  KeepAliveTimeout 15
  
  ##
  ## Server-Pool Size Regulation (MPM specific)
  ##
  # prefork MPM
  # StartServers: number of server processes to start
  # MinSpareServers: minimum number of server processes which are kept spare
  # MaxSpareServers: maximum number of server processes which are kept spare
  # MaxClients: maximum number of server processes allowed to start
  # MaxRequestsPerChild: maximum number of requests a server process serves
  //设置使用Prefork MPM运行方式的参数,此运行方式是Red hat默认的方式
  <IfModule prefork.c>
  
  //设置服务器启动时运行的进程数
  StartServers 8
  
  //Apache在运行时会根据负载的轻重自动调整空闲子进程的数目
  //若存在低于5个空闲子进程,就创建一个新的子进程准备为客户提供服务
  MinSpareServers 5
  
  //若存在高于20个空闲子进程,就创建逐一删除子进程来提高系统性能
  MaxSpareServers 20
  
  //限制同一时间的连接数不能超过150
  MaxClients 150
  
  //限制每个子进程在结束处理请求之前能处理的连接请求为1000
  MaxRequestsPerChild 1000
  </IfModule>
  
  # worker MPM
  # StartServers: initial number of server processes to start
  //设置使用Worker MPM运行方式的参数
  <IfModule worker.c>
  StartServers 2
  MaxClients 150
  MinSpareThreads 25
  MaxSpareThreads 75
  ThreadsPerChild 25
  MaxRequestsPerChild 0
  </IfModule>
  
  # perchild MPM
  # NumServers: constant number of server processes
  //设置使用perchild MPM运行方式的参数
  <IfModule perchild.c>
  NumServers 5
  StartThreads 5
  MinSpareThreads 5
  MaxSpareThreads 10
  MaxThreadsPerChild 20
  MaxRequestsPerChild 0
  </IfModule>
  
  //设置服务器的监听端口
  #Listen 12.34.56.78:80
  Listen 202.112.85.101:80
  
  #
  # Load config files from the config directory “/etc/httpd/conf.d”.
  //将/etc/httpd/conf.d目录下所有以conf结尾的配置文件包含进来
  Include conf.dpublic_html>
  # AllowOverride FileInfo AuthConfig Limit
  # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  # <Limit GET POST OPTIONS>
  # Order allow,deny
  # Allow from all
  # </Limit>
  # <LimitExcept GET POST OPTIONS>
  # Order deny,allow
  # Deny from all
  # </LimitExcept>
  #</Directory>
  
  //当访问服务器时,依次查找页面Index.html index.htm.var
  DirectoryIndex index.html index.html.var
  
  //指定保护目录配置文件的名称
  AccessFileName .htaccess
  
  //拒绝访问以.ht开头的文件,即保证.htaccess不被访问
  <Files ~ “^.ht”>
  Order allow,deny
  Deny from all
  </Files>
  
  //指定负责处理MIME对应格式的配置文件的存放位置
  TypesConfig /etc/mime.types
  //指定默认的MIME文件类型为纯文本或HTML文件
  DefaultType text/plain
  
  //当mod_mime_magic.c模块被加载时,指定magic信息码配置文件的存放位置
  <IfModule mod_mime_magic.c>
  # MIMEMagicFile /usr/share/magic.mime
  MIMEMagicFile conf/magic
  </IfModule>
  
  //只记录连接Apache服务器的Ip地址,而不纪录主机名
  HostnameLookups Off
  //指定错误日志存放位置
  ErrorLog logs/error_log
  //指定记录的错误信息的详细等级为warn等级
  LogLevel warn
  //定义四中记录日志的格式
  LogFormat “%h %l %u %t “%r” %>s %b “%{ Referer }i” “%{ User-Agent }i”" combined
  LogFormat “%h %l %u %t “%r” %>s %b” common
  LogFormat “%{ Referer }i -> %U” referer
  LogFormat “%{ User-agent }i” agent
  
  //指定访问日志的纪录格式为combined(混合型),并指定访问日志存放位置
  # CustomLog logs/access_log common
  CustomLog logs/access_log combined
  #CustomLog logs/referer_log referer
  #CustomLog logs/agent_log agent
  #CustomLog logs/access_log combined
  
  //设置apache自己产生的页面中使用apache服务器版本的签名
  ServerSignature On
  
  //设置内容协商目录的访问别名
  Alias /icons/ “/var/www/icons/”
  //设置/var/www/icons/的访问权限
  <Directory “/var/www/icons”>
  //MultiViews 使用内容协商功决定被发送的网页的性质
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>
  
  //设置网页邮件服务
  Alias /webmail “/usr/share/squirrelmail”
  
  <Directory “/usr/share/squirrelmail”>
  Options Indexes MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>

//设置apache手册的访问别名
  Alias /manual “/var/www/manual”
  
  <Directory “/var/www/manual”>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>
  //设置浏览器匹配
  BrowserMatch “Mozilla/2″ nokeepalive
  BrowserMatch “MSIE 4.0b2;” nokeepalive downgrade-1.0 force-response-1.0
  BrowserMatch “RealPlayer 4.0″ force-response-1.0
  BrowserMatch “Java/1.0″ force-response-1.0
  BrowserMatch “JDK/1.0″ force-response-1.0
  BrowserMatch “Microsoft Data Access Internet Publishing Provider” redirect-carefully
  BrowserMatch “^WebDrive” redirect-carefully
  
  #
  # Allow server status reports, with the URL of http://servername/server-s…
  # Change the “.your-domain.com” to match your domain to enable.
  #
  #<Location /server-status>
  # SetHandler server-status
  # Order deny,allow
  # Deny from all
  # Allow from .your-domain.com
  #</Location>
  
  #
  # Allow remote server configuration reports, with the URL of
  # http://servername/server-i… (requires that mod_info.c be loaded).
  # Change the “.your-domain.com” to match your domain to enable.
  #
  #<Location /server-info>
  # SetHandler server-info
  # Order deny,allow
  # Deny from all
  # Allow from .your-domain.com
  #</Location>
  
  //设置APache为代理服务器
  # Proxy Server directives. Uncomment the following lines to
  # enable the proxy server:
  #
  #<IfModule mod_proxy.c>
  #ProxyRequests On
  #
  #<Proxy *>
  # Order deny,allow
  # Deny from all
  # Allow from .your-domain.com
  #</Proxy>
  
  #
  # Enable/disable the handling of HTTP/1.1 “Via:” headers.
  # (“Full” adds the server version; “Block” removes all outgoing Via: headers)
  # Set to one of: Off | On | Full | Block
  #
  #ProxyVia On
  
  #
  # To enable the cache as well, edit and uncomment the following lines:
  # (no cacheing without CacheRoot)
  #
  #CacheRoot “/etc/httpd/proxy”
  #CacheSize 5
  #CacheGcInterval 4
  #CacheMaxExpire 24
  #CacheLastModifiedFactor 0.1
  #CacheDefaultExpire 1
  #NoCache a-domain.com another-domain.edu joes.garage-sale.com
  
  #</IfModule>
  # End of proxy directives.
  
  //设置虚拟主机
  ### Section 3: Virtual Hosts
  #
  # VirtualHost: If you want to maintain multiple domains/hostnames on your
  # machine you can setup VirtualHost containers for them. Most configurations
  # use only name-based virtual hosts so the server doesn’t need to worry about
  # IP addresses. This is indicated by the asterisks in the directives below.
  #
  # Please see the documentation at
  # <URL:http://httpd.apache.org/do…
  # for further details before you try to setup virtual hosts.
  #
  # You may use the command line option ‘-S’ to verify your virtual host
  # configuration.
  
  #
  # Use name-based virtual hosting.
  //指令监听本地计算机上所有的IP地址请求
  #NameVirtualHost *
  
  #
  # VirtualHost example:
  # Almost any Apache directive may go into a VirtualHost container.
  # The first VirtualHost section is used for requests without a known
  # server name.
  #
  #<VirtualHost *>
  //定义虚拟主机的设置,此设置将覆盖前面有的的相同指令
  # ServerAdmin webmaster at dummy-host dot example.com
  # DocumentRoot /www/docs/dummy-host.example.com
  # ServerName dummy-host.example.com
  # ErrorLog logs/dummy-host.example.com-error_log
  # CustomLog logs/dummy-host.example.com-access_log common
  #</VirtualHost>
  //指定DAV加锁数据库文件的存放位置
  <IfModule mod_dav_fs.c>
  # Location of the WebDAV lock database.
  DAVLockDB /var/lib/dav/lockdb
  </IfModule>
  
  Alias /docs “/home/EMU/webmail/docs/”
  
  <Directory “/home/EMU/webmail/docs”>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  </Directory>
  
  <IfModule mod_dav_fs.c>
  # Location of the WebDAV lock database.
  DAVLockDB /var/lib/dav/lockdb
  </IfModule>
  
  //设置CGI目录的访问别名
  ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
  
  //由于red hat中不使用worker MPM运行方式,所以不加载mod_cgid.c模块
  <IfModule mod_cgid.c>
  #
  # Additional to mod_cgid.c settings, mod_cgid has Scriptsock <path>
  # for setting UNIX socket for communicating with cgid.
  #
  #Scriptsock logs/cgisock
  </IfModule>
  
  //设置CGI目录的访问权限
  <Directory “/var/www/cgi-bin”>
  AllowOverride None
  Options None
  Order allow,deny
  Allow from all
  </Directory>
  
  //重定向连接
  # Redirect permanent /foo http://www.example.com/bar
  
  //设置自动生成目录列表的显示方式
  //FancyIndexing 对每种类型的文件前加上一个小图标以示区别
  //VersionSort 对同一个软件的多个版本进行排序
  //NameWidth=* 文件名字段自动适应当前目录下的最长文件名
  IndexOptions FancyIndexing VersionSort NameWidth=*
  
  //当使用IndexOptions FancyIndexing之后,配置下面的参数
  //用于告知服务器在遇到不同的文件类型或扩展名时采用MIME编码格式