以下是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/内存/磁盘类型)和实际业务场景调整,建议先在测试环境验证效果后再应用到生产环境。