以下是提升Ubuntu上Apache性能的關鍵方法:
選擇高效MPM模塊
event
或worker
模塊(需禁用prefork
):sudo a2dismod mpm_prefork && sudo a2enmod mpm_event # 禁用prefork,啟用event
sudo systemctl restart apache2
配置示例(/etc/apache2/mods-enabled/mpm_event.conf
):<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestWorkers 150
</IfModule>
優化連接與超時設置
KeepAlive
并合理設置參數:KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2 # 低延遲場景可設為1-3秒
啟用緩存與壓縮
mod_cache
+mod_cache_disk
):sudo a2enmod cache cache_disk
配置緩存目錄:CacheRoot "/var/cache/apache2/mod_cache_disk"
CacheEnable disk /
mod_deflate
壓縮動態內容:<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
限制資源占用
MaxRequestWorkers
(根據服務器內存計算,如每進程約20-50MB):MaxRequestWorkers 100 # 示例值,需結合服務器資源調整
MaxConnectionsPerChild 1000 # 防止內存泄漏
mod_status
等):sudo a2dismod status
系統級優化
sudo sysctl -w fs.file-max=100000
echo "fs.file-max = 100000" >> /etc/sysctl.conf
vm.swappiness=10
):sudo sysctl -w vm.swappiness=10
監控與調優
htop
、apachetop
監控資源使用,動態調整參數。/var/log/apache2/access.log
/error.log
),排查異常請求。注意:修改配置前需備份文件,生產環境建議先在測試環境驗證。高流量場景可結合負載均衡(如Nginx反向代理)進一步提升性能。