在 Debian 上优化 Apache(通常是 Apache 2.4),可以从 性能、并发、安全、系统资源 几个方面入手。下面给你一套实用且可落地的优化方案,适合生产环境,也适合中小站点。
apache2 -v
推荐:
apache2ctl -M | grep mpm
推荐:
prefork(除非必须跑 PHP 老模块)apt install apache2 -y
确保:
a2dismod mpm_prefork
a2dismod mpm_worker
a2enmod mpm_event
编辑:
nano /etc/apache2/mods-available/mpm_event.conf
推荐配置(2–4 核服务器):
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 1000
</IfModule>
✅ 说明:
编辑:
nano /etc/apache2/apache2.conf
推荐:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
✅ 解释:
KeepAliveTimeout 不要太大(2–5 秒)apache2ctl -M
常见可关闭模块:
a2dismod autoindex
a2dismod status
a2dismod cgid
a2dismod userdir
✅ 原则:
只保留你真正用的模块
a2enmod expires
a2enmod headers
加入配置:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
a2enmod deflate
配置:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
apt install php-fpm
a2enmod proxy_fcgi setenvif
a2enconf php8.x-fpm
❌ 避免使用 libapache2-mod-php
nano /etc/php/8.x/fpm/pool.d/www.conf
关键参数:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
ulimit -n
推荐 ≥ 65535
编辑:
nano /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
nano /etc/apache2/ports.conf
Listen 80
Listen 443
CustomLog /dev/null common
apt install logrotate
apt install apache2-utils
ab -n 1000 -c 50 http://localhost/
a2enmod mpm_event expires headers deflate ssl http2
✅ event MPM + PHP-FPM
✅ 关闭无用模块
✅ KeepAlive 合理配置
✅ 静态资源缓存 + 压缩
✅ 系统 limits 调整
如果你愿意,可以告诉我:
我可以 直接给你一套定制化的 apache2.conf + mpm 配置。