以下是CentOS下LNMP環境中Nginx的優化策略:
worker_processes auto;
// 自動匹配CPU核心數worker_cpu_affinity auto;
// 綁定CPU核心(Linux專用)worker_rlimit_nofile 65535;
// 提升單個進程最大文件描述符數use epoll;
// 啟用Linux高效事件模型multi_accept on;
// 允許同時接受多個連接worker_connections 10240;
// 單進程最大連接數(需結合系統ulimit調整)sendfile on;
// 啟用零拷貝文件傳輸tcp_nopush on;
// 優化數據包發送tcp_nodelay on;
// 禁用Nagle算法,降低延遲location ~* \.(jpg|css|js)$ {
expires 365d;
add_header Cache-Control "public, immutable";
}
Gzip壓縮:gzip on;
gzip_types text/css application/javascript text/xml;
gzip_comp_level 6;
server_tokens off;
// 隱藏Nginx版本location ~ /\.(ht|git|svn) {
deny all;
}
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
pm.max_children
(建議設置為CPU核心數×2+1),避免進程頻繁創建銷毀。location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_read_timeout 300;
}
/etc/sysctl.conf
,添加:net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
vm.swappiness = 0 # 禁用交換分區(服務器內存充足時)
noatime,nodiratime
)減少磁盤I/O。nginx -t
檢查配置語法,nginx -s reload
重新加載配置。top
、htop
監控CPU/內存使用,ss -tulnp
查看網絡連接狀態。access_log
和error_log
,定位性能瓶頸。注:優化需結合服務器硬件配置(如CPU/內存/磁盤類型)和實際業務場景調整,建議先在測試環境驗證效果后再應用到生產環境。