版本V1.0
时间2012-10-04
版权GPL
作者itnihao 邮箱
博客
如需重新发行,请注明以上信息,谢谢合作
前言
本文档基于对apache的学习整理而成的笔记。本文档详细的记录了apache各种应用,以及一些个人的理解,如果偏差,请和我联系,以在下一个版本中进行更正。其中大部分文档均来自网络,感谢网络上各位朋友的分享,才有此文档的出现。其中本人对参考的部分网络文档进行适当的修改,以达到更好的参考效果。也希望各位积极的分享文档,为开源事业做出自己力所能及的贡献。
itnihao 2012年10月04日于成都
第七章
注意:以下的配置文件融合了rpm包安装和源码安装的配置文件,2种安装方式的文件配置稍有不同。
#参见<URL:以取得关于这些指令的详细信息#不要只是简单的阅读这些指令信息而不去理解它。#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。##这些配置指令被分为下面三个部分:#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:。#这将会使你自己也能解决很多问题。##路径的结尾不要添加斜线。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 5MinSpareServers 5MaxSpareServers 10MaxClients 150MaxRequestPerChild 0</IfModule># worker MPM# StartServers:服务器启动时的服务进程数目# MaxClients:允许同时连接的最大用户数目# MinSpareThreads:保有的最小工作线程数目# MaxSpareThreads:允许保有的最大工作线程数目# ThreadsPerChild:每个服务进程中的工作线程常数# MaxRequestsPerChild:服务进程中允许的最大请求数目<IfModule worker.c>StartServers 2MaxClients 150MinSpareThreads 25MaxSpareThreads 75ThreadsPerChild 25MaxRequestsPerChild 0</IfModule># perchild MPM# NumServers:服务进程数量# StartThreads:每个服务进程中的起始线程数量# MinSpareThreads:保有的最小线程数量# MaxSpareThreads:保有的最大线程数量# MaxThreadsPerChild:每个服务进程允许的最大线程数# MaxRequestsPerChild:每个服务进程允许连接的最大数量<IfModule perchild.c>NumServers 5StartThreads 5MinSpareThreads 5MaxSpareThreads 10MaxThreadsPerChild 20MaxRequestsPerChild 0</IfModule># WinNT MPM# ThreadsPerChild:服务进程中工作线程常数# MaxRequestsPerChild:服务进程允许的最大请求数<IfModule mpm_winnt.c>ThreadsPerChild 250MaxRequestsPerChild 0</IfModule># BeOS MPM# StartThreads:服务器启动时启动的线程数# MaxClients:可以启动的最大线程数(一个线程等于一个用户)# MaxRequestsPerThread:每个线程允许的最大请求数<IfModule beos.c>StartThreads 10MaxClients 50MaxRequestsPerThread 10000</IfModule># NetWare MPM# ThreadStachSize:为每个工作线程分配的堆栈尺寸# StartThreads:服务器启动时启动的线程数# MinSpareThreads:用于处理实发请求的空闲线程数# MaxSpareThreads:空闲线程的最大数量# MaxThreads:在同一时间活动的最大线程数# MaxRequestPerChild:一个线程服务请求的最大数量,# 推荐将其设置为0,以实现无限制的接入<IfModule mpm_netware.c>ThreadStackSize 65536StartThreads 250MinSpareThreads 25MaxSpareThreads 250MaxThreads 1000MaxRequestPerChild 0</IfModule># OS/2 MPM# StartServers:启动的服务进程数量# MinSpareThreads:每个进程允许的最小空闲线程# MaxSpareThreads:每个进程允许的最大空闲线程# MaxRequestsPerChild:每个服务进程允许的最大连接数<IfModule mpmt_os2.c>StartServers 2MinSpareThreads 5MaxSpareThreads 10MaxRequestsPerChild 0</IfModule># Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值# 参见<VirtualHost>指令# 使用如下命令使Apache只在指定的IP地址上监听,# 以防止它在IP地址0.0.0.0上监听# Listen 12.34.56.78:80Listen 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 nobodyGroup nobody</IfModule></IfModule>## ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。# 作为一个出错文档,这个地址显示在server-generated页上,# 例如:#ServerAdmin # ServerName指定Apache用于识别自身的名字和端口号。# 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。# 参见UseCanonicalName指令# 如果你的主机没有注册DNS名,在这里键入它的IP地址# 无论如何,你必须使用它的IP地址来提供服务,# 这里使用一种容易理解的方式重定向服务ServerName
博文超过8万字,剩余部分见附件