apache2的httpd.conf 详解

Posted on 2010-06-29 15:21  萧木柯  阅读(1531)  评论(0编辑  收藏  举报
# 基于 NCSA 服务的配置文件。

#

#这是Apache服务器主要配置文件。
#它包含服务器的影响服务器运行的配置指令。

#参见<URL:<a href="http://httpd.ache.org/doc-2.0/" target="_blank">http://httpd.ache.org/doc-2.0/</a>>以取得关于这些指令的详细信息

#

#不要只是简单的阅读这些指令信息而不去理解它。

#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。

#

#这些配置指令被分为下面三个部分:

#1. 控制整个Apache服务器行为的部分(即全局环境变量)

#2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数

#3. 虚拟主机的设置参数

#

#配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”),

#服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot

#的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值

#为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log”

#

##第一区:全局环境参数

#

#这里设置的参数将影响整个Apache服务器的行为;

#例如Apache能够处理的并发请求的数量等。

#

#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。

#

#注意!如果你想要将它指定为NFS或其它网络上的位置,

#请一定要去阅读与LockFile有关的文档(可能在

#<URL:<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile" target="_blank">http://httpd.apache.org/docs-2.0/mo...n.html#lockfile</a>> )。

#这将会使你自己也能解决很多问题。

#

#路径的结尾不要添加斜线。

#

ServerRoot "/usr/loacl/apache2"



#

#串行访问的锁文件必须保存在本地磁盘上

#

<IfModule !mpm_winnt.c>

<
IfModule !mpm_neware.c>

#LockFile logs/accept.lock

</IfModule>

</
IfModule>



#ScoreBoardFile:用来保存内部服务进程信息的文件。

#如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中,

#并且它不能被第三方软件所使用。

#如果指定了,要确保不能使用两个Apache使用同一个记分板文件,

#这个记分板文件必须保存在本地磁盘上。

#

<IfModule !mpm_netware.c>

<
IfModule !perchild.c>

#ScoreBoardFile logs/apache_runtime_status

<IfModule>

<
IfModule>



#

#PidFile:记录服务器启动进程号的文件。

#

<IfModule !mpm_neware.c>

PidFile logs/httpd.pid

</IfModule>



#

#Timeout:接收和发送前超时秒数

#

Timeout 300



#

#KeepAlive:是否允许稳固的连接(每个连接有多个请求),

#设为"Off"则停用。

#

KeepAlive On



#

#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,

#设为0表示无限制接入。

#我们推荐你将其设为一个较大的值,以便提高性能

MaxKeepAliveRequests 100



#

#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数

#

KeepAliveTimeout 15



##

##Server-Pool大小设定(针对MPM的)

##



# prefork MPM

# StartServers:启动时服务器启动的进程数

# MinSpareServers:保有的备用进程的最小数目

# MaxSpareServers:保有的备用进程的最大数目

# MaxClients:服务器允许启动的最大进程数

# MaxRequestsPerChild:一个服务进程允许的最大请求数

<IfModule prefork.c>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestPerChild 0

</IfModule>



# worker MPM

# StartServers:服务器启动时的服务进程数目

# MaxClients:允许同时连接的最大用户数目

# MinSpareThreads:保有的最小工作线程数目

# MaxSpareThreads:允许保有的最大工作线程数目

# ThreadsPerChild:每个服务进程中的工作线程常数

# MaxRequestsPerChild:服务进程中允许的最大请求数目

<IfModule worker.c>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>



# perchild MPM

# NumServers:服务进程数量

# StartThreads:每个服务进程中的起始线程数量

# MinSpareThreads:保有的最小线程数量

# MaxSpareThreads:保有的最大线程数量

# MaxThreadsPerChild:每个服务进程允许的最大线程数

# MaxRequestsPerChild:每个服务进程允许连接的最大数量

<IfModule perchild.c>

NumServers 5

StartThreads 5

MinSpareThreads 5

MaxSpareThreads 10

MaxThreadsPerChild 20

MaxRequestsPerChild 0

</IfModule>



# WinNT MPM

# ThreadsPerChild:服务进程中工作线程常数

# MaxRequestsPerChild:服务进程允许的最大请求数

<IfModule mpm_winnt.c>

ThreadsPerChild 250

MaxRequestsPerChild 0

</IfModule>



# BeOS MPM

# StartThreads:服务器启动时启动的线程数

# MaxClients:可以启动的最大线程数(一个线程等于一个用户)

# MaxRequestsPerThread:每个线程允许的最大请求数

<IfModule beos.c>

StartThreads 10

MaxClients 50

MaxRequestsPerThread 10000

</IfModule>



# NetWare MPM

# ThreadStachSize:为每个工作线程分配的堆栈尺寸

# StartThreads:服务器启动时启动的线程数

# MinSpareThreads:用于处理实发请求的空闲线程数

# MaxSpareThreads:空闲线程的最大数量

# MaxThreads:在同一时间活动的最大线程数

# MaxRequestPerChild:一个线程服务请求的最大数量,

# 推荐将其设置为0,以实现无限制的接入

<IfModule mpm_netware.c>

ThreadStackSize 65536

StartThreads 250

MinSpareThreads 25

MaxSpareThreads 250

MaxThreads 1000

MaxRequestPerChild 0

</IfModule>



# OS/2 MPM

# StartServers:启动的服务进程数量

# MinSpareThreads:每个进程允许的最小空闲线程

# MaxSpareThreads:每个进程允许的最大空闲线程

# MaxRequestsPerChild:每个服务进程允许的最大连接数

<IfModule mpmt_os2.c>

StartServers 2

MinSpareThreads 5

MaxSpareThreads 10

MaxRequestsPerChild 0

</IfModule>



#

# Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值

# 参见<VirtualHost>指令

# 使用如下命令使Apache只在指定的IP地址上监听,

# 以防止它在IP地址0.0.0.0上监听

#

# Listen 12.34.56.78:80



Listen 80



#

# 动态共享支持(DSO)

#

# 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行,

# 因此,在这里包含了这些指令,以便能在使用它之前激活。

# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)

#

# 示例:

# LoadModule foo_module modules/mod_foo.so

#



#

# ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态

# 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。

# 默认为off

#

# ExtendedStatus On



### 第二区:“主”服务配置

#

# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost>

# 定义处理的任何请求。

# 这些数值也提供默认值给后面定义的<VirtualHost>容器。

# 如果<VirtualHost>中有定义,那么这里定义的指令值将被

# <VirtualHost>中的定义所覆盖。

#



<IfModule !mpm_winnt.c>

<
IfModule !mpm_neware.c>

#

# 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动

# 然后再将它切换为你想要使用的用户或组。

#

# User/Group:运行httpd的用户和组

# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”

# 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。

# 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET),

#节在这些系统上不要使用“Group #-1”。

#

User nobody

Group
#-1

</IfModule>

</
IfModule>



#

# ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。

# 作为一个出错文档,这个地址显示在server-generated页上,

# 例如:admin@your-domain.com

#

ServerAdmin [email]kreny@sina.com[/email]



#

# ServerName指定Apache用于识别自身的名字和端口号。

# 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错

#

# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。

# 参见UseCanonicalName指令

#

# 如果你的主机没有注册DNS名,在这里键入它的IP地址

# 无论如何,你必须使用它的IP地址来提供服务,

# 这里使用一种容易理解的方式重定向服务

ServerName <a href="http://www.dalouis.com:80" target="_blank">www.dalouis.com:80</a>



#

# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。

# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。

# 当设置为“On”,Apache会使用ServerName指令的值。

#

UseCanonicalName Off



#

# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。

# 但是可以使用符号链接和别名来指向到其他的位置。

#

DocumentRoot "/home/redhat/public_html"



#

# Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。

#

# 首先,我们配置一个高限制的特征。



# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。

# 如下所示

<Directory />

Order Deny,Allow

Deny from all

</Directory>



#

# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。

# - 所以,如果Apache没有象你所期待的那样工作的话,

# 请检查你是否在下面明确的指定它可用。

#



#

# 这将改变到你设置的DocumentRoot

#

<Directory "/home/redhat/public_html">



#

# Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。

#

# 这个指令既复杂又重要,请参见

#“<a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。" target="_blank">http://httpd.apache.org/docs-2.0/mo...〉酶嗟男畔ⅰ?lt;/a>

#

Options FollowSymLinks



#

# AllowOverride控制那些被放置在.htaccess文件中的指令。

# 它可以是“All”,“None”,或者下列指令的组合:

# Options FileInfo AuthConfig Limit

#

AllowOverride None



#

# 控制谁可以获得服务。

#

Order allow,deny

Allow from all



</Directory>



#

# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。

#



UserDir public_html



# 为防止在UserDir指令上的漏洞,对root用户设置

# 象“./”这样的UserDir是非常有用的。

# 如果你使用Apache 1.3或以上版本,我们强烈建议你

# 在你的服务器配置文件中包含下面的行



UserDir disabled root



#

# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例:

#

# <Directory /home/*/public_html>

# AllowOverride FileInfo AuthConfig Limit Indexes

# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec

# <Limit GET POST OPTIONS PROPFIND>

# Order allow,deny

# Allow from all

# </Limit>

# <LimitExcept GET POST OPTIONS PROPFIND>

# Order deny,allow

# Deny from all

# </LimitExcept>

# </Directory>



#

# DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名

#

# index.html.var文件(一个类型映象文件)用于提供一个文档处理列表,

# 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。

#

DirectoryIndex index.php index.html index.html.var



#

# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。

# 参见AllowOverride指令。

#

AccessFileName .htaccess



#

# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。

#

<Files ~ "^.ht">

Order allow,deny

Deny from all

</Files>



#

# Typeconfig:定义在哪里查询mime.types文件。

#

TypeConfig conf/mime.types



#

# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。

# 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择;

# 如果大多是二进制文档,诸如软件或图像,你应使用

# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。

#

DefaultType text/plain



#

# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints),

# 这个MIMEMagicFile指令定义hints定义所在的文件。

#

<IfModule mod_mime_magic.c>

MIMEMagicFile conf/magic

</IfModule>



#

# HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时

# 记录主机名,如<a href="http://www.apache.org;为off时记录IP地址,204.62.129.132。" target="_blank">www.apache.org;为off时记录IP地址,204.62.129.132。</a>

# 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会

# 至少造成对 nameserver 进行一次查询。

#

HostnameLookups Off



#

# EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。

# 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。

# 在一些系统上,关闭它会提升系统性能(与文件系统类型无关);

# 具体情况请参阅<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap" target="_blank">http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a>

#

# EnableMMAP off



#

# EnableSendfile:控制是否使用sendfile kernel支持发送文件

# (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统

# (NFS)上,请你关闭它。

# 参见<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile" target="_blank">http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a>

#

# EnableSendfile off



#

# ErrorLog:错误日志文件定位。

# 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息

# 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所

# 定义的文件里,而不是这儿定义的文件。

#

ErrorLog logs/error_log



#

# LogLevel:控制记录在错误日志文件中的日志信息数量。

# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。

#

LogLevel warn



#

# 下面的指令为CustomLog指令定义格式别名。

#

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



# 你需要安装了mod_logio.c模块才能使用%I和%O。

# LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio



#

# 指定接入日志文件的定位和格式(一般日志格式)。

# 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里,

# 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。

#

CustomLog logs/access_log common



#

# 如果你想要记录agent和referer信息,可以使用下面的指令

#

# CustomLog logs/referer_log referer

# CustomLog logs/agent_log agent



#

# 如果你想要使用一个文件记录access,agent和referer信息,

# 你可以如下定义这个指令:

#

# CustomLog logs/access_log combined



#

# ServerTokens

# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”,

# 这表示在回应头中将包含模块中的操作系统类型和编译信息。

# 可以设为列各值中的一个:

# Full | OS | Minor | Minimal | Major | Prod

# Full传达的信息最多,而Prod最少。

#

ServerTokens Full



#

# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中

# (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误

# 或自定义的错误文档以外)。

# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。

# 可以为如下值:On | Off | EMail

#

ServerSignature On



#

# Aliases:在这时添加你需要的别名,格式如下:

# Alias 别名 真实名

#

# 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。

# 因此,“/icons”不是这个示例中的别名。

# 如果别名中以“/”结尾,那么真实名也必须以“/”结尾,

# 如果别名中省略了结尾的“/”,那么真实名也必须省略。

#

# 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、

# FancyIndexing,你可以注释掉它。

#

# Alias /icons/ "/usr/local/apache2/icons/"



# <Directory "/usr/local/apache2/icons">

# Options Indexes MultiViews

# AllowOverride None

# Order allow,deny

## Allow from all

# </Directory>



#

# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置,

# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话,

# 你可以注释掉它。

#

Alias /manual "/usr/loacl/apache2/manual"



<Directory "/usr/local/apache2/manual">

Options Indexes FollowSymLinks MultiViews IncludesNoExec

AddOutputFilter Includes html

Order allow
,deny

Allow from all

</Directory>



#

# ScriptAlias:指定包含服务脚本的目录。

# ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。

# 尾部的“/”规则与Alias一样

#

ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"



# 这里是添加php 4支持的指令

AddType application/x-httpd-php .php

LoadModule php4_module modules
/libphp4.so



<IfModule mod_cgid.c>

#

# 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的

# 脚本接口路径。

#

# Scriptsock logs/cgisock

</IfModule>



#

# 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录,

# 如果你配置了的话。

#

<Directory "/usr/local/apache2/cgi-bin">

AllowOverride None

Options None

Order allow
,deny

Allow from all

</Directory>



#

# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档,

# 而不是现在的,这帮助客户定位那些改变了位置的文档。

# 例如:

# Redirect permanent /foo <a href="http://www.example.com/bar" target="_blank">http://www.example.com/bar</a>



#

# 控制server-generated目录列表显示的指令

#



#

# IndexOptions:控制server-generated目录列表显示特征。

#

IndexOptions FancyIndexing VersionSort



#

# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示,

# 只适用于FancyIndexed指令

#

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

AddIconByType
(TXT,/icons/text.gif) text

# 基于 NCSA 服务的配置文件。

#

#这是Apache服务器主要配置文件。

#它包含服务器的影响服务器运行的配置指令。

#参见<URL:<a href="http://httpd.ache.org/doc-2.0/" target="_blank">http://httpd.ache.org/doc-2.0/</a>>以取得关于这些指令的详细信息

#

#不要只是简单的阅读这些指令信息而不去理解它。

#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。

#

#这些配置指令被分为下面三个部分:

#1. 控制整个Apache服务器行为的部分(即全局环境变量)

#2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数

#3. 虚拟主机的设置参数

#

#配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”),

#服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot

#的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值

#为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log”

#

##第一区:全局环境参数

#

#这里设置的参数将影响整个Apache服务器的行为;

#例如Apache能够处理的并发请求的数量等。

#

#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。

#

#注意!如果你想要将它指定为NFS或其它网络上的位置,

#请一定要去阅读与LockFile有关的文档(可能在

#<URL:<a href="http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile" target="_blank">http://httpd.apache.org/docs-2.0/mo...n.html#lockfile</a>> )。

#这将会使你自己也能解决很多问题。

#

#路径的结尾不要添加斜线。

#

ServerRoot "/usr/loacl/apache2"



#

#串行访问的锁文件必须保存在本地磁盘上

#

<IfModule !mpm_winnt.c>

<
IfModule !mpm_neware.c>

#LockFile logs/accept.lock

</IfModule>

</
IfModule>



#ScoreBoardFile:用来保存内部服务进程信息的文件。

#如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中,

#并且它不能被第三方软件所使用。

#如果指定了,要确保不能使用两个Apache使用同一个记分板文件,

#这个记分板文件必须保存在本地磁盘上。

#

<IfModule !mpm_netware.c>

<
IfModule !perchild.c>

#ScoreBoardFile logs/apache_runtime_status

<IfModule>

<
IfModule>



#

#PidFile:记录服务器启动进程号的文件。

#

<IfModule !mpm_neware.c>

PidFile logs/httpd.pid

</IfModule>



#

#Timeout:接收和发送前超时秒数

#

Timeout 300



#

#KeepAlive:是否允许稳固的连接(每个连接有多个请求),

#设为"Off"则停用。

#

KeepAlive On



#

#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,

#设为0表示无限制接入。

#我们推荐你将其设为一个较大的值,以便提高性能

MaxKeepAliveRequests 100



#

#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数

#

KeepAliveTimeout 15



##

##Server-Pool大小设定(针对MPM的)

##



# prefork MPM

# StartServers:启动时服务器启动的进程数

# MinSpareServers:保有的备用进程的最小数目

# MaxSpareServers:保有的备用进程的最大数目

# MaxClients:服务器允许启动的最大进程数

# MaxRequestsPerChild:一个服务进程允许的最大请求数

<IfModule prefork.c>

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestPerChild 0

</IfModule>



# worker MPM

# StartServers:服务器启动时的服务进程数目

# MaxClients:允许同时连接的最大用户数目

# MinSpareThreads:保有的最小工作线程数目

# MaxSpareThreads:允许保有的最大工作线程数目

# ThreadsPerChild:每个服务进程中的工作线程常数

# MaxRequestsPerChild:服务进程中允许的最大请求数目

<IfModule worker.c>

StartServers 2

MaxClients 150

MinSpareThreads 25

MaxSpareThreads 75

ThreadsPerChild 25

MaxRequestsPerChild 0

</IfModule>



# perchild MPM

# NumServers:服务进程数量

# StartThreads:每个服务进程中的起始线程数量

# MinSpareThreads:保有的最小线程数量

# MaxSpareThreads:保有的最大线程数量

# MaxThreadsPerChild:每个服务进程允许的最大线程数

# MaxRequestsPerChild:每个服务进程允许连接的最大数量

<IfModule perchild.c>

NumServers 5

StartThreads 5

MinSpareThreads 5

MaxSpareThreads 10

MaxThreadsPerChild 20

MaxRequestsPerChild 0

</IfModule>



# WinNT MPM

# ThreadsPerChild:服务进程中工作线程常数

# MaxRequestsPerChild:服务进程允许的最大请求数

<IfModule mpm_winnt.c>

ThreadsPerChild 250

MaxRequestsPerChild 0

</IfModule>



# BeOS MPM

# StartThreads:服务器启动时启动的线程数

# MaxClients:可以启动的最大线程数(一个线程等于一个用户)

# MaxRequestsPerThread:每个线程允许的最大请求数

<IfModule beos.c>

StartThreads 10

MaxClients 50

MaxRequestsPerThread 10000

</IfModule>



# NetWare MPM

# ThreadStachSize:为每个工作线程分配的堆栈尺寸

# StartThreads:服务器启动时启动的线程数

# MinSpareThreads:用于处理实发请求的空闲线程数

# MaxSpareThreads:空闲线程的最大数量

# MaxThreads:在同一时间活动的最大线程数

# MaxRequestPerChild:一个线程服务请求的最大数量,

# 推荐将其设置为0,以实现无限制的接入

<IfModule mpm_netware.c>

ThreadStackSize 65536

StartThreads 250

MinSpareThreads 25

MaxSpareThreads 250

MaxThreads 1000

MaxRequestPerChild 0

</IfModule>



# OS/2 MPM

# StartServers:启动的服务进程数量

# MinSpareThreads:每个进程允许的最小空闲线程

# MaxSpareThreads:每个进程允许的最大空闲线程

# MaxRequestsPerChild:每个服务进程允许的最大连接数

<IfModule mpmt_os2.c>

StartServers 2

MinSpareThreads 5

MaxSpareThreads 10

MaxRequestsPerChild 0

</IfModule>



#

# Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值

# 参见<VirtualHost>指令

# 使用如下命令使Apache只在指定的IP地址上监听,

# 以防止它在IP地址0.0.0.0上监听

#

# Listen 12.34.56.78:80



Listen 80



#

# 动态共享支持(DSO)

#

# 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行,

# 因此,在这里包含了这些指令,以便能在使用它之前激活。

# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)

#

# 示例:

# LoadModule foo_module modules/mod_foo.so

#



#

# ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态

# 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。

# 默认为off

#

# ExtendedStatus On



### 第二区:“主”服务配置

#

# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost>

# 定义处理的任何请求。

# 这些数值也提供默认值给后面定义的<VirtualHost>容器。

# 如果<VirtualHost>中有定义,那么这里定义的指令值将被

# <VirtualHost>中的定义所覆盖。

#



<IfModule !mpm_winnt.c>

<
IfModule !mpm_neware.c>

#

# 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动

# 然后再将它切换为你想要使用的用户或组。

#

# User/Group:运行httpd的用户和组

# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”

# 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。

# 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET),

#节在这些系统上不要使用“Group #-1”。

#

User nobody

Group
#-1

</IfModule>

</
IfModule>



#

# ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。

# 作为一个出错文档,这个地址显示在server-generated页上,

# 例如:admin@your-domain.com

#

ServerAdmin [email]kreny@sina.com[/email]



#

# ServerName指定Apache用于识别自身的名字和端口号。

# 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错

#

# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。

# 参见UseCanonicalName指令

#

# 如果你的主机没有注册DNS名,在这里键入它的IP地址

# 无论如何,你必须使用它的IP地址来提供服务,

# 这里使用一种容易理解的方式重定向服务

ServerName <a href="http://www.dalouis.com:80" target="_blank">www.dalouis.com:80</a>



#

# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。

# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。

# 当设置为“On”,Apache会使用ServerName指令的值。

#

UseCanonicalName Off



#

# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。

# 但是可以使用符号链接和别名来指向到其他的位置。

#

DocumentRoot "/home/redhat/public_html"



#

# Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。

#

# 首先,我们配置一个高限制的特征。



# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。

# 如下所示

<Directory />

Order Deny,Allow

Deny from all

</Directory>



#

# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。

# - 所以,如果Apache没有象你所期待的那样工作的话,

# 请检查你是否在下面明确的指定它可用。

#



#

# 这将改变到你设置的DocumentRoot

#

<Directory "/home/redhat/public_html">



#

# Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合:

# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

#

# 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。

#

# 这个指令既复杂又重要,请参见

#“<a href="http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。" target="_blank">http://httpd.apache.org/docs-2.0/mo...〉酶嗟男畔ⅰ?lt;/a>

#

Options FollowSymLinks



#

# AllowOverride控制那些被放置在.htaccess文件中的指令。

# 它可以是“All”,“None”,或者下列指令的组合:

# Options FileInfo AuthConfig Limit

#

AllowOverride None



#

# 控制谁可以获得服务。

#

Order allow,deny

Allow from all



</Directory>



#

# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。

#



UserDir public_html



# 为防止在UserDir指令上的漏洞,对root用户设置

# 象“./”这样的UserDir是非常有用的。

# 如果你使用Apache 1.3或以上版本,我们强烈建议你

# 在你的服务器配置文件中包含下面的行



UserDir disabled root



#

# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例:

#

# <Directory /home/*/public_html>

# AllowOverride FileInfo AuthConfig Limit Indexes

# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec

# <Limit GET POST OPTIONS PROPFIND>

# Order allow,deny

# Allow from all

# </Limit>

# <LimitExcept GET POST OPTIONS PROPFIND>

# Order deny,allow

# Deny from all

# </LimitExcept>

# </Directory>



#

# DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名

#

# index.html.var文件(一个类型映象文件)用于提供一个文档处理列表,

# 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。

#

DirectoryIndex index.php index.html index.html.var



#

# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。

# 参见AllowOverride指令。

#

AccessFileName .htaccess



#

# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。

#

<Files ~ "^.ht">

Order allow,deny

Deny from all

</Files>



#

# Typeconfig:定义在哪里查询mime.types文件。

#

TypeConfig conf/mime.types



#

# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。

# 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择;

# 如果大多是二进制文档,诸如软件或图像,你应使用

# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。

#

DefaultType text/plain



#

# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints),

# 这个MIMEMagicFile指令定义hints定义所在的文件。

#

<IfModule mod_mime_magic.c>

MIMEMagicFile conf/magic

</IfModule>



#

# HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时

# 记录主机名,如<a href="http://www.apache.org;为off时记录IP地址,204.62.129.132。" target="_blank">www.apache.org;为off时记录IP地址,204.62.129.132。</a>

# 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会

# 至少造成对 nameserver 进行一次查询。

#

HostnameLookups Off



#

# EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。

# 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。

# 在一些系统上,关闭它会提升系统性能(与文件系统类型无关);

# 具体情况请参阅<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap" target="_blank">http://httpd.apache.org/docs-2.0/mo...html#enablemmap</a>

#

# EnableMMAP off



#

# EnableSendfile:控制是否使用sendfile kernel支持发送文件

# (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统

# (NFS)上,请你关闭它。

# 参见<a href="http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile" target="_blank">http://httpd.apache.org/docs-2.0/mo...#enablesendfile</a>

#

# EnableSendfile off



#

# ErrorLog:错误日志文件定位。

# 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息

# 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所

# 定义的文件里,而不是这儿定义的文件。

#

ErrorLog logs/error_log



#

# LogLevel:控制记录在错误日志文件中的日志信息数量。

# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。

#

LogLevel warn



#

# 下面的指令为CustomLog指令定义格式别名。

#

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



# 你需要安装了mod_logio.c模块才能使用%I和%O。

# LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio



#

# 指定接入日志文件的定位和格式(一般日志格式)。

# 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里,

# 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。

#

CustomLog logs/access_log common



#

# 如果你想要记录agent和referer信息,可以使用下面的指令

#

# CustomLog logs/referer_log referer

# CustomLog logs/agent_log agent



#

# 如果你想要使用一个文件记录access,agent和referer信息,

# 你可以如下定义这个指令:

#

# CustomLog logs/access_log combined



#

# ServerTokens

# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”,

# 这表示在回应头中将包含模块中的操作系统类型和编译信息。

# 可以设为列各值中的一个:

# Full | OS | Minor | Minimal | Major | Prod

# Full传达的信息最多,而Prod最少。

#

ServerTokens Full



#

# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中