温馨提示×

如何通过Apache配置提升Ubuntu网站稳定性

小樊
43
2025-12-09 01:52:57
栏目: 云计算

通过 Apache 配置提升 Ubuntu 网站稳定性

一 基础稳固与连接治理

  • 保持系统与组件为最新版本,及时获取安全补丁与修复:执行 sudo apt update && sudo apt full-upgrade -y。
  • 启用持久连接并控制其生命周期:KeepAlive On;MaxKeepAliveRequests 建议 100;KeepAliveTimeout 建议 2–5 秒,在高并发下取 2 秒更稳。
  • 合理设置全局超时:Timeout 建议 30 秒,避免慢客户端长时间占用工作进程。
  • 关闭 DNS 反向查询:HostnameLookups Off,减少阻塞与额外负载。
  • 精简模块与访问面:禁用不需要的模块(如 mod_cgi、mod_userdir),降低攻击面与资源占用。
  • 启用压缩与缓存:启用 mod_deflate 对文本类资源压缩;启用 mod_cache/mod_disk_cache 做页面与静态资源缓存,减轻后端压力。

二 选择并调优 MPM 并发模型

  • 选择原则:
    • event:基于事件驱动,适合大量并发与长连接(HTTP KeepAlive)场景,资源利用更高效。
    • worker:多线程模型,较 prefork 更高效,但需应用线程安全。
    • prefork:多进程、非线程,隔离性好、兼容老旧模块(如某些 PHP SAPI),稳定性直观但内存占用更高。
  • 切换示例(Ubuntu 常见路径):sudo a2dismod mpm_prefork && sudo a2enmod mpm_event && sudo systemctl restart apache2。
  • 并发参数建议(需结合内存与压测微调):
    • event/worker(示例起点):StartServers 2;MinSpareThreads 25;MaxSpareThreads 75;ThreadLimit 64;ThreadsPerChild 25;MaxRequestWorkers 150;MaxConnectionsPerChild 0(0 表示不限制,可按需设置)。
    • prefork(示例起点):StartServers 5;MinSpareServers 5;MaxSpareServers 10;MaxRequestWorkers 150;MaxConnectionsPerChild 0
  • 计算 MaxRequestWorkers 的保守方法:MaxRequestWorkers ≤ 可用内存 / 单进程/线程平均内存占用。先设定保守值,再用压测逐步上调。

三 超时压缩缓存与会话治理

  • 压缩传输:启用 mod_deflate,压缩 text/html、text/css、application/javascript 等,减少带宽占用与排队。
  • 页面与静态资源缓存:启用 mod_cache/mod_disk_cache,设置 CacheEnable disk /、CacheRoot、CacheDirLevels、CacheDirLength,提升命中率与响应速度。
  • 减少日志抖动:将 LogLevel 调整为 warn,仅记录重要事件,降低 I/O 压力。
  • 连接与头部治理:保持 HostnameLookups Off;按需设置 ServerTokens Prod、ServerSignature Off,减少信息暴露与潜在攻击面。

四 安全加固与访问控制

  • 防火墙放行:使用 UFW 仅开放 80/443 端口,减少攻击面。
  • 启用 HTTPS:配置 SSL/TLS 证书,强制或优先使用 HTTPS,保护数据传输安全。
  • 访问控制:在 Directory/Location 中使用 Require 指令进行来源限制与权限最小化。
  • 抗 DoS 基础:启用 mod_evasive 进行请求频率与异常行为检测与阻断。
  • 状态页仅本地访问:启用 mod_status 的 ExtendedStatus,Location /server-status 仅允许 127.0.0.1 访问,避免信息泄露。

五 监控维护与扩展架构

  • 实时监控:使用 top/htop、sar 观察 CPU/内存/负载;启用 Apache server-status 页面查看当前连接、工作进程等关键指标。
  • 日志与轮转:定期审查 error.log 与 access.log,使用 logrotate 自动轮转与压缩,避免磁盘被日志撑满。
  • 备份与变更管理:在调整前备份配置与数据,变更后灰度观察,确保可快速回滚。
  • 扩展架构:当单机已达瓶颈,使用 HAProxy/Nginx 作为反向代理/负载均衡,将流量分发到多台 Apache 后端,提高可用性与横向扩展能力。

0