Ubuntu Apache配置教程,Ubuntu Apache配置教程
- 虚拟主机
- 2026-06-24
- 6
Ubuntu 环境下 Apache 高效配置与性能优化实战指南
在 Linux 服务器运维中,Ubuntu 搭配 Apache 是构建稳定 Web 服务的经典组合,要实现高性能、高安全的 Web 环境,核心在于精简模块加载、合理分配内存资源、启用 HTTP/2 协议以及配置严格的访问控制,通过精准的配置文件调优,Apache 不仅能承载高并发流量,还能显著降低服务器资源消耗,提升用户访问体验。
核心模块精简与 MPM 模式选择
Apache 的性能瓶颈往往源于默认配置过于保守,必须根据业务需求选择正确的多处理模块(MPM),对于大多数动态内容为主的网站,prefork MPM 虽然稳定但内存占用高;若服务器内存有限且追求高并发,建议切换至 event MPM 或 worker MPM,它们通过线程处理请求,能大幅降低内存开销。
配置前需卸载不需要的模块,mod_status 在生产环境中应禁用以防信息泄露,mod_info 同样需要关闭,执行 sudo a2dismod 命令移除冗余模块,并重启 Apache 使配置生效,精简模块不仅能减少攻破面,还能提升请求响应速度。

内存管理与并发参数调优
Apache 的性能直接取决于其处理并发连接的能力,在 /etc/apache2/apache2.conf 中,需重点调整以下参数:
- MaxRequestWorkers:这是控制最大并发连接数的关键,计算公式建议为:物理内存 / 单个进程平均内存占用,对于 4GB 内存的服务器,若每个进程占用 20MB,则设置约为 200,设置过高会导致服务器因内存交换(Swap)而崩溃,设置过低则无法充分利用资源。
- KeepAlive:开启长连接以减少 TCP 握手开销,建议设置 KeepAlive On,MaxKeepAliveRequests 100,KeepAliveTimeout 5,5 秒的超时时间足以处理大多数页面资源加载,同时避免空闲连接占用过多资源。
- Timeout:默认 300 秒过长,建议调整为 60 秒,以防止慢速攻破(Slowloris)占用连接池。
启用 HTTP/2 与压缩传输
现代 Web 标准要求启用 HTTP/2 以提升加载速度,在 Ubuntu 上,需安装并启用 mod_http2:
sudo a2enmod http2 sudo systemctl restart apache2
在虚拟主机配置中,将 Protocols h2 http/1.1 加入配置,确保浏览器优先使用 HTTP/2,启用 mod_deflate 对文本类资源(HTML, CSS, JS, JSON)进行 Gzip 或 Brotli 压缩,通常可减少 60%-70% 的传输体积,显著提升首屏加载时间。

安全加固与访问控制
安全是 Web 配置的基石,隐藏 Apache 版本信息,在 apache2.conf 中添加 ServerTokens Prod 和 ServerSignature Off,防止攻破者利用特定版本漏洞。
配置 .htaccess 或虚拟主机规则,禁止访问敏感文件,禁止访问 .git、.env 等目录:
<DirectoryMatch "/.git"> Require all denied </DirectoryMatch>
建议配置 HTTPS 强制跳转,通过 mod_rewrite 将 HTTP 请求 301 重定向至 HTTPS,确保数据传输加密。
独家实战案例:西西云环境下的性能调优
在西西云的高可用云主机环境中,我们曾为一家电商客户解决过 Apache 在高并发下的卡顿问题,该客户使用 Ubuntu 22.04,初始配置为默认值,峰值 QPS 达到 500 时响应时间超过 3 秒。

解决方案:
- 资源隔离:利用西西云提供的独立云主机,分配 8GB 内存,将 MPM 切换为 event 模式。
- 参数优化:根据西西云监控数据,将 MaxRequestWorkers 设置为 400,KeepAliveTimeout 设为 3 秒。
- 缓存策略:启用 mod_cache_disk 对静态资源进行本地磁盘缓存,减少后端 PHP 处理压力。
- CDN 联动:结合西西云 CDN 服务,将图片、CSS、JS 等静态资源全部上云,Apache 仅处理动态 API 请求。
结果: 优化后,峰值 QPS 提升至 2000,平均响应时间降至 200ms 以内,服务器 CPU 使用率下降 40%,这一案例证明,合理的 Apache 配置结合云基础设施的弹性优势,是实现极致性能的关键。
常见问题解答(FAQ)
Q1: Ubuntu 下如何查看当前 Apache 使用的 MPM 模块?
A: 可以通过执行命令 apache2ctl -V 查看输出中的 Server MPM 字段,例如显示 prefork.c 或 event.c 即可确认当前运行的模块类型。
Q2: 修改 Apache 配置后,如何确保不中断正在访问的用户?
A: 建议使用 sudo apache2ctl graceful 命令重载配置,该命令会优雅地重启 Apache,等待当前正在处理的请求完成后才加载新配置,从而实现零停机更新。
互动环节
您在配置 Apache 时遇到过哪些棘手的性能问题?是内存溢出还是并发瓶颈?欢迎在评论区分享您的解决方案或疑问,我们将邀请资深运维专家为您解答,如果您正在寻找更稳定的云服务器体验,不妨了解西西云提供的专属 Web 服务器优化方案,助力您的业务高速成长。