完整 httpd.conf 配置详情及中文注解
2011-08-08 16:42:40
分类: LINUX
### 此份配置同时适用于Windows(开发环境)和Linux(产品环境),依靠MPM的不同进行区分 ########################################################################################## #### 第一部分 全局配置 [这些指令的作用域含有"server config"但不含"virtual host"] ##### ########################################################################################## ##################################################################### ##### MPM 指令(所有MPM指令都仅能用于全局配置) ##### ##### prefork 与 mpm_winnt 的公共指令 #内核转储目录(Linux上Apache以root身份启动并切换至其他用户,再忽略该指令可以禁止内核转储) #CoreDumpDirectory /share/empty #在所有IP上监听80端口的HTTP协议 Listen 80 http #半链接队列的最大长度,不能设的太大,而应当通过启用SYN-Cookie抵御SYN洪水。 ListenBacklog 255 #主内存分配程序在未调用free()的情况下允许持有的最大自由内存数量(默认"0"表示无限制) MaxMemFree 0 #将每个子进程在其生存期内允许伺服的最大请求数量设为有限值,可以防止(偶然的)内存泄漏无限进行,有助于当服务器负载减轻的时候减少活动进程的数量 MaxRequestsPerChild 10000 #记录父进程(监控进程)PID的文件 <IfModule mpm_winnt_module> PidFile log/httpd.pid </IfModule> <IfModule mpm_prefork_module> PidFile /var/run/httpd.pid </IfModule> #TCP接收缓冲区大小(相当于8帧,如果不用http上传可减小到4帧) ReceiveBufferSize 11840 #TCP发送缓冲区大小(相当于8帧,一般比最常用页面压缩后的平均尺寸稍大) SendBufferSize 11840 #父进程和子进程之间通信使用的计分板,建议不要设置以首选在匿名共享内存中建立 #ScoreBoardFile /tmp/httpd_status ##### mpm_winnt 特有指令 <IfModule mpm_winnt_module> #每个子进程可配置的线程数上限,应当和ThreadsPerChild可能达到的最大值保持一致 ThreadLimit 5 #每个子进程建立的线程数(必须小于等于ThreadLimit) ThreadsPerChild 5 #处理客户端连接的线程使用的栈尺寸(65536字节),注释掉以后将使用操作系统默认值 #ThreadStackSize 65536 #仅在其他软件干扰AcceptEx()操作时才使用这个 #Win32DisableAcceptEx </IfModule> ##### prefork 特有指令 <IfModule mpm_prefork_module> #串行化多个子进程在多个socket上accept()请求的方法(仅在使用了多个Listen指令时候才有意义) #建议在 Linux 2.6 内核并且 Glibc 中包含NPTL时使用posixsem选项 #当然,为了得到最佳性能,最好就根本不使用多个Listen语句。 AcceptMutex posixsem #当AcceptMutex指令的值是fcntl或flock的时候,Apache使用的锁文件的位置(最好放在TMPFS中) #其他用户可以通过建立一个同名文件来阻止服务器启动,以造成拒绝服务攻击 LockFile /tmp/httpd_accept.lock #子进程崩溃以后进行异常处理的钩子程序 EnableExceptionHook Off #优雅停止服务器的超时秒数(5分钟) GracefulShutDownTimeout 300 #子进程运行时的组 Group www #子进程运行时的用户 User httpd #允许同时伺服的最大接入请求数量(用于应对潜在的请求高峰) #建议设为与postgresql的max_connections值相等(假定每个接入请求平均使用一个数据库链接) MaxClients 1000 #服务器允许配置的进程数上限(保持和MaxClient相等) ServerLimit 1000 #服务器启动时建立的子进程数 StartServers 30 #空闲子进程的最大数量(用于应对潜在的请求高峰) MaxSpareServers 30 #空闲子进程的最小数量 MinSpareServers 15 </IfModule> ##################################################################### ##### mod_so指令(一共只有两条Load..指令,且仅能用于全局配置) ##### <IfModule mpm_winnt_module> #由于Linux已将下列模块静态编译进了httpd,因此不需要动态加载(PHP除外) #特别提醒:Windows加载了mod_info/mod_status/mod_bw而Linux没有加载。 #基于文件的摘要认证和基于用户的授权以及访问控制 LoadModule auth_digest_module bin/mod_auth_digest.so LoadModule authn_default_module bin/mod_authn_default.so LoadModule authn_file_module bin/mod_authn_file.so LoadModule authz_default_module bin/mod_authz_default.so LoadModule authz_user_module bin/mod_authz_user.so LoadModule authz_host_module bin/mod_authz_host.so #对输出内容(一般是文本)进行压缩 LoadFile bin/zlib1.dll LoadModule deflate_module bin/mod_deflate.so #指定目录索引文件以及为目录提供"尾斜杠"重定向(仅供phppgadmin使用) LoadModule dir_module bin/mod_dir.so #环境变量控制 LoadModule env_module bin/mod_env.so LoadModule setenvif_module bin/mod_setenvif.so #通过配置文件控制"Expires:"和"Cache-Control:"头内容 LoadModule expires_module bin/mod_expires.so #记录日志和定制日志格式 LoadModule log_config_module bin/mod_log_config.so # MIME模块(PHP依赖于此模块) LoadModule mime_module bin/mod_mime.so #实时重写URL请求 LoadModule rewrite_module bin/mod_rewrite.so #生成Apache配置情况的Web页面 LoadModule info_module bin/mod_info.so #生成描述服务器状态的Web页面 LoadModule status_module bin/mod_status.so #限制客户端带宽(用于模拟低速internet环境)[Http://apache.ivn.cl] #LoadModule bw_module bin/mod_bw.so </IfModule> ##### 添加PHP5支持 <IfModule mpm_winnt_module> LoadFile php/php5ts.dll |