下面从系统层、Apache 配置层、模块与缓存、PHP(如适用)、安全与监控几个方面,系统地讲一下 Ubuntu + Apache2 的优化方法,偏实战、可落地。
编辑 /etc/sysctl.conf:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
fs.file-max = 1000000
生效:
sysctl -p
ulimit -n 65535
永久生效:
/etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
apachectl -V | grep -i mpm
Ubuntu 常见:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
如果是 PHP,需用 php-fpm 才能用 event
/etc/apache2/mods-available/mpm_event.conf
<IfModule mpm_event_module>
StartServers 4
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 400
MaxConnectionsPerChild 10000
</IfModule>
根据内存调整
每线程 ≈ 几 MB
/etc/apache2/apache2.conf
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Timeout 30
✅ 减少连接建立开销
❌ 不要设太大(容易占连接)
常见可禁用:
sudo a2dismod status
sudo a2dismod autoindex
sudo a2dismod cgi
查看已启用:
apachectl -M
sudo a2enmod cache
sudo a2enmod cache_disk
示例:
<IfModule mod_cache.c>
CacheQuickHandler off
CacheLock on
CacheIgnoreHeaders Set-Cookie
</IfModule>
<IfModule mod_cache_disk.c>
CacheRoot /var/cache/apache2/mod_cache_disk
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
</IfModule>
sudo a2enmod deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
sudo a2enmod expires
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
sudo apt install php-fpm
sudo a2enmod proxy_fcgi
sudo a2enconf php-fpm
/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
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!dontlog
SetEnvIf Request_URI "\.(jpg|css|js|png)$" dontlog
sudo a2enmod logio
Options -Indexes
ServerTokens Prod
ServerSignature Off
sudo a2enmod status
访问:
http://your-server/server-status
ab -n 1000 -c 100 http://localhost/
✅ Ubuntu + Apache2 (event) + PHP-FPM + OPCache + mod_cache + Gzip
如果你愿意,可以告诉我:
我可以给你一套直接可用的优化配置模板。