Apache HTTP Server 仍是大量传统业务与混合架构中的主力 Web 服务。本页围绕配置文件组织、虚拟主机、模块加载、并发模型与常见故障,整理一套可复用的运维思路,帮助你在接手或迁移 Apache 环境时快速建立掌控感。
Apache 的主配置通常位于 /etc/httpd/conf/httpd.conf(RHEL 系)或 /etc/apache2/apache2.conf(Debian 系)。理解 Include 与 IncludeOptional 的加载顺序,是排查“配置改了不生效”的第一步。
多站点共存时,NameVirtualHost 与 <VirtualHost> 的匹配顺序直接决定请求落到哪个站点。下表整理了运维中最常调整的指令与建议值。
| 指令 | 作用 | 运维建议 |
|---|---|---|
| ServerName | 声明站点主域名 | 与 DNS 保持一致,避免重定向环 |
| DocumentRoot | 站点根目录 | 配合 <Directory> 做访问控制 |
| KeepAlive | 长连接开关 | 高并发下适度开启,注意超时时间 |
| ErrorLog | 错误日志路径 | 按站点拆分,便于定位问题 |
Apache 的性能瓶颈往往不在单条配置,而在 MPM 模型与模块组合。Prefork 稳定但内存占用高,Worker/Event 更适合高并发静态资源场景。调优前先用 ab 或 wrk 建立基线,再逐项调整。
检查 80/443 端口是否被 Nginx 或其他进程占用,用 ss -lntp 定位后调整监听端口或停用冲突服务。
优先检查 <Directory> 的 Require 配置与 SELinux 上下文,再确认目录执行权限是否到位。
确认改动文件确实被 Include 加载,执行 configtest 通过后使用 graceful 重启而非直接 reload。