在 Ubuntu 上优化 Apache 性能,可以从系统层面、Apache 配置、模块管理、缓存与压缩、PHP/后端、监控几个方面入手。下面给你一套实用、可操作的优化方案。
Apache 性能核心在于 MPM(Multi-Processing Module)
查看当前 MPM:
apache2ctl -V | grep -i mpm
event(高并发首选)sudo a2dismod php*
sudo a2enmod mpm_event
sudo systemctl restart apache2
适合:
不要直接在 Apache 里跑 PHP 推荐:
sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
编辑:
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 ≈ 内存 / 每进程内存查看已启用模块:
apache2ctl -M
常见可关闭:
sudo a2dismod autoindex status cgi negotiation
保留核心:
sudo a2enmod deflate
配置:
sudo nano /etc/apache2/mods-enabled/deflate.conf
示例:
AddOutputFilterByType DEFLATE text/html text/css application/javascript application/json
sudo a2enmod expires headers
<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 nano /etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
说明:
sudo a2enmod cache cache_disk
ulimit -n
建议 ≥ 65535
sudo nano /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
sudo sysctl -p
sudo nano /etc/php/*/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 apache2ctl status
ab -n 1000 -c 100 http://your-site/
✅ Ubuntu
✅ Apache + mpm_event
✅ PHP-FPM
✅ deflate + expires
✅ Redis 缓存
✅ CDN
如果你愿意,可以告诉我:
我可以给你直接可用的配置文件。