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