# # 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含影响服务器运行的配置指令。 #关于详细信息请参见<URL:http://httpd.ache.org/doc-2.0/> # #不要只是简单的阅读这些说明信息而不去理解它们做什么。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数,在一些Apache服务进程中配置不同的IP地址和主机名。 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log”
###第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为, #例如Apache能够处理的并发请求的数量或配置文件所在的位置等. # # Don't give away too much information about all the subcomponents # we are running. Comment out this line if you don't mind remote sites # finding out what major optional modules you are running // 问:这一段的中文意思是什么?请指教 ServerTokens OS // 1) 当服务器响应主机头[header]信息时显示Apache的版本号和主机的操作系统; // 2) 如将"OS"改为"Prod",在出现错误页的时候不显示服务器操作系统的名称. # #ServerRoot:目录树的根结点,指出服务器保存其 #配置、出错信息和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS(或其它网络上的位置) #请一定要去阅读与LockFile有关的文档(可能在 #<URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>); #这样的话,您将节省大量的麻烦. # #在路径的结尾请不要添加斜线。 # ServerRoot "/etc/httpd" // 设置服务器的根目录.
#ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),scoreboard将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保两个Apache不能使用同一个scoreboard文件, #这个scoreboard文件必须保存在本地磁盘上。 # #ScoreBoardFile run/httpd.scoreboard
# #PidFile:当服务器启动时用于记录进程识别ID的文件。 # PidFile run/httpd.pid // 设置运行Apache时使用的pidFile路径
# #Timeout:设置接收和发送前的超时秒数 # Timeout 300 // 如果300秒没有收到或者送出任何数据就断开该连接
# #KeepAlive:是否允许保持连接功能(每个连接有多个请求), #设为"Off"则停用。 # KeepAlive Off // 使用保持连接的功能,如果为Off 则为不使用保持连接的功能,那样客户一次请求就只能响应一个文 // 件,建议设为KeepAlive On
# #MaxKeepAliveRequests:在一个保持连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以获得最高的性能. # MaxKeepAliveRequests 100 // 使用保持连接功能时,设置客户一次请求连接能响应的文件数最大上限为100
# #KeepAliveTimeout:同一连接同一客户端两个请求之间等待的时间秒数. # KeepAliveTimeout 15 // 使用保持连接功能时,如果两个相邻连接时间超过15秒,就断开连接。
## ##Server-Pool大小设定(针对MPM) ##
# prefork MPM # StartServers:启动时服务器的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数 <IfModule prefork.c> // 设置使用预生派(Prefork MPM)运行方式的参数,此方式是Redhat默认的方式 StartServers 8 // 设置服务器启动时运行的进程数为8 MinSpareServers 5 // 如果低于5个空闲子进程,就会创建新的子进程为客户提供服务 MaxSpareServers 20 // 如果存在高于20个空闲子进程,就创建逐一删除的子进程来提高系统性能 MaxClients 150 // 限制同一时间连接数不能超过150 MaxRequestPerChild 1000 // 限制每个子进程在结束请求之前能处理的连接请求为1000 </IfModule>
# worker MPM # StartServers:启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目 <IfModule worker.c> // 设置使用工作者模式(worker MPM)运行方式的参数 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
# perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量 <IfModule perchild.c> // 设置使用独立子进程(Perchild MPM)运行方式的参数 NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule>
# # Listen:允许你将Apache服务绑定到指定的IP地址和端口上,以此取代默认值 # 参见<VirtualHost>指令 # # 改变如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址(0.0.0.0)上监听 # # Listen 12.34.56.78:80 Listen 80 // 设置服务器的监听端口 # # 配置文件从配置目录“/etc/httpd/conf.d ”加载 # Include conf.dpublic_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.html index.html.var // 当访问服务器时依次查找index.htm index.html.var
# # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # |