以下是CentOS下Apache性能調優的關鍵方法:
啟用KeepAlive
在/etc/httpd/conf/httpd.conf中設置:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
減少連接建立開銷,提升并發處理能力。
調整MPM模塊參數
編輯/etc/httpd/conf.modules.d/00-mpm.conf,根據服務器資源調整:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150 # 根據內存調整,建議為物理內存/2
MaxConnectionsPerChild 0 # 避免頻繁創建子進程
適用于prefork MPM(CentOS默認),優化并發處理。
配置靜態文件緩存
啟用mod_expires模塊,在配置文件中添加:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 30 days"
ExpiresByType image/jpeg "access plus 1 year"
</IfModule>
減少靜態資源重復請求。
啟用壓縮技術
啟用mod_deflate模塊,壓縮文本類文件:
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
降低傳輸數據量,提升加載速度。
優化內核參數
修改/etc/sysctl.conf,調整如下參數:
vm.swappiness=10 # 減少Swap使用
net.ipv4.tcp_tw_reuse=1 # 復用TCP連接
提升系統資源利用率。
禁用不必要的模塊
編輯httpd.conf,注釋掉不需要的模塊(如mod_rewrite若未使用),減少資源占用。
使用高效文件系統
掛載文件系統時使用noatime選項,減少磁盤I/O:
mount -o remount,noatime /
適用于高訪問場景。
監控與調優工具
top、htop監控系統資源。apachectl -M查看已加載模塊,確保無冗余模塊。注意:修改配置后需重啟Apache服務:
sudo systemctl restart httpd
建議在測試環境驗證優化效果后再應用到生產環境。