在 Debian 上优化 Apache(通常是 Apache2),可以从系统层面、Apache 配置、模块管理、缓存、安全与监控几个方面入手。下面给你一套实用、可落地的优化方案(适配 Debian 10/11/12)。
apache2 -v
uname -a
free -h
lscpu
确认:
Debian 默认可能是 mpm_prefork(兼容 PHP,但性能一般)
apache2ctl -M | grep mpm
| 场景 | MPM |
|---|---|
| PHP(mod_php) | prefork |
| PHP-FPM / 静态 | event ✅(推荐) |
| 高并发 | event |
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
编辑:
sudo nano /etc/apache2/mods-enabled/mpm_event.conf
示例(2GB–4GB 内存):
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>
原则:
MaxRequestWorkers ≈ 内存 / 每进程内存MaxRequestWorkers越少越快。
apache2ctl -M
sudo a2dismod status
sudo a2dismod autoindex
sudo a2dismod negotiation
sudo a2dismod cgi
(生产环境通常不需要)
sudo a2enmod deflate
编辑:
sudo nano /etc/apache2/mods-enabled/deflate.conf
示例:
AddOutputFilterByType DEFLATE text/html text/css application/javascript
sudo a2enmod expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType text/css "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
</IfModule>
sudo a2enmod cache cache_disk
sudo nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
说明:
推荐 PHP-FPM + Apache proxy_fcgi
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
比 mod_php 更快、更稳。
sudo a2enmod headers
ServerTokens Prod
ServerSignature Off
ulimit -n
如太小:
sudo nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sudo sysctl -p
sudo a2enmod status
访问:/server-status
ab -n 1000 -c 100 http://your-site/
✅ Debian + Apache(event) + PHP-FPM
✅ deflate + expires + headers
✅ 禁用无用模块
✅ 合理 MPM 参数
如果你愿意,可以告诉我:
我可以直接帮你算一套精确参数配置。