Debian 上选择 Apache 模块的思路与优先级
按场景选择模块清单
| 场景 | 必选模块 | 可选增强 | 不建议/注意 |
|---|---|---|---|
| 静态站点或 CDN 源站 | mpm_event/mpm_worker、mod_deflate、mod_expires、mod_headers、mod_dir、mod_mime | mod_cache/mod_cache_disk、mod_pagespeed | 关闭目录浏览(避免启用 mod_autoindex 暴露目录) |
| 动态站点(PHP 为主) | mpm_event/mpm_worker、mod_deflate、mod_expires、mod_headers、mod_rewrite | mod_ssl、mod_status、mod_remoteip | 使用 PHP-FPM(非阻塞、资源友好),避免 mod_php(与线程/事件 MPM 不友好) |
| 反向代理/负载均衡 | mod_proxy、mod_proxy_http、mod_proxy_balancer、mod_proxy_wstunnel | mod_ssl、mod_headers、mod_rewrite | 合理设置超时与连接复用,避免代理循环与头部泄露 |
| 安全与合规 | mod_ssl、mod_headers、mod_auth_basic/mod_authnz_file、mod_security | mod_remoteip、速率限制/防爆破规则 | WAF 规则需灰度与调优,避免误杀;禁用 mod_info/mod_status 对外暴露 |
| 开发与调试 | mod_status、mod_rewrite、mod_headers | mod_dumpio | 仅内网/测试环境启用,生产务必关闭 |
说明:Debian 的模块可通过 a2enmod/a2dismod 启用/禁用,常用模块如 mod_ssl、mod_rewrite、mod_proxy、mod_deflate、mod_expires、mod_headers 等均可用包管理器安装与启用。
关键模块选择与配置要点
并发模型 MPM(先决定这个再选其他模块)
apachectl -V | grep MPMa2enmod mpm_worker(或 mpm_event),随后调整 StartServers/MinSpareThreads/MaxSpareThreads/ThreadsPerChild 等参数。性能与可观测性
安全基线
快速决策与实施步骤
apt 安装对应包,再用 a2enmod 启用;变更前备份。ab/siege 或业务流量回放,结合 mod_status、日志与监控定位瓶颈。常用命令速查
apachectl -V | grep MPM;a2enmod mpm_worker / a2dismod mpm_preforka2enmod <模块名> / a2dismod <模块名>systemctl reload apache2<Location /server-status> 中限制来源 IP,访问 http://服务器IP/server-status 查看。