完整 httpd.conf 配置详情及中文注解

本文详尽解析了Apache服务器的核心配置文件httpd.conf,包括各种指令的含义和用法,并提供了中文注解,帮助读者理解并定制自己的Web服务器配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分类: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值