以下是提升Nginx网站性能的关键优化方向及配置建议:
一、系统与进程优化
- 调整工作进程:
worker_processes auto;// 自动匹配CPU核心数
worker_connections 65535;// 单进程最大连接数,需配合worker_rlimit_nofile - 启用高效事件模型:
use epoll;// Linux下高性能事件驱动机制
multi_accept on;// 批量接收新连接,减少上下文切换
二、连接与资源管理
- 优化TCP参数:
keepalive_timeout 65;// 长连接超时时间
keepalive_requests 1000;// 单连接最大请求数 - 零拷贝传输:
sendfile on;// 减少内核与用户空间数据拷贝
tcp_nopush on;// 合并TCP数据包,提升传输效率
三、缓存策略
- 静态资源缓存:
location ~* \.(jpg|css|js)$ { expires 365d; add_header Cache-Control "public"; } ``` // 缓存静态文件1年,减少重复请求 - 代理缓存:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m; proxy_cache my_cache; proxy_cache_valid 200 10m; // 缓存200状态码响应10分钟 ``` // 缓存后端动态内容,减轻服务器压力
四、协议与压缩优化
- 启用HTTP/2:
listen 443 ssl http2;// 支持多路复用,降低延迟 - Gzip压缩:
gzip on; gzip_types text/css application/json; gzip_comp_level 6; // 压缩级别(1-9,平衡CPU与压缩率) ``` // 减少传输数据量,提升页面加载速度
五、负载均衡与安全
- 动态负载均衡:
upstream backend { least_conn; // 按最小连接数分配请求 server 10.0.0.1:8080 weight=3; // 权重配置 } ``` // 避免单点压力过大 - 限流防护:
limit_req_zone $binary_remote_addr zone=api:10m rate=100r/s; location /api/ { limit_req zone=api burst=50 nodelay; // 限制突发请求 } ``` // 防止恶意流量压垮服务器
六、监控与调优
- 启用状态监控:
location /nginx_status { stub_status; allow 127.0.0.1; } ``` // 查看活跃连接、请求速率等指标 - 日志优化:
access_log off;// 关闭非必要访问日志,减少I/O
注:优化后需通过nginx -t测试配置正确性,再nginx -s reload重新加载。实际参数需根据服务器硬件(如CPU/内存)和业务场景(如高并发API或静态资源站)调整。