优化 Ubuntu 上的 Apache 可以从 性能、安全、资源占用、并发能力 等方面入手。下面给你一套实用且可落地的优化方案,适合生产环境。
sudo apt update && sudo apt upgrade -y
sudo apt install apache2 -y
编辑:
sudo nano /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
查看当前 MPM:
apache2ctl -M | grep mpm
| 场景 | MPM |
|---|---|
| PHP / 动态网站 | mpm_prefork |
| 静态文件 / 高并发 | mpm_event |
| 高并发 + PHP-FPM | mpm_event + php-fpm |
切换到 mpm_event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
编辑:
sudo nano /etc/apache2/mods-available/mpm_event.conf
示例(2~4G 内存服务器):
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
</IfModule>
✅ 原则:
MaxRequestWorkers不要超过内存承受范围MaxConnectionsPerChild防止内存泄漏
编辑:
sudo nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
✅ 高并发建议 KeepAliveTimeout 不要太大
查看已加载模块:
apache2ctl -M
禁用无用模块(示例):
sudo a2dismod autoindex cgi status
常用可关闭模块:
sudo a2enmod cache cache_disk expires headers
sudo nano /etc/apache2/sites-available/000-default.conf
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 7 days"
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
sudo a2enmod deflate
配置:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.x-fpm
sudo 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
sudo a2enmod headers
ServerTokens Prod
ServerSignature Off
防止暴露 Apache 版本。
sudo nano /etc/apache2/apache2.conf
LogLevel warn
或关闭访问日志(高并发):
CustomLog /dev/null combined
sudo apache2ctl configtest
sudo systemctl restart apache2
压力测试:
ab -n 1000 -c 50 http://your-domain/
✅ 高并发网站推荐方案
Ubuntu + Apache (mpm_event) + PHP-FPM + OPCache + Gzip + Cache
如果你愿意,可以告诉我:
我可以给你一套 完全定制的 Apache 配置 ✅