Nginx优化策略的结构化总结,涵盖配置调整、系统优化及安全加固等方面:

1. 工作进程与连接优化

多进程模型:设置 worker_processes auto; 自动匹配CPU核心数。

连接数限制:worker_connections 1024;,总连接数 = worker_processes × worker_connections。

长连接优化:

keepalive_timeout 65;(减少空闲连接占用)。

keepalive_requests 100;(限制单个连接请求数)。

2. 静态资源传输优化

高效传输:

sendfile on; 启用零拷贝传输。

tcp_nopush on;(与sendfile配合,合并数据包)。

tcp_nodelay on;(禁用Nagle算法,提升实时性)。

压缩:

gzip on; 开启Gzip压缩。

gzip_comp_level 6;(平衡压缩率与CPU消耗)。

gzip_types text/css application/json; 指定压缩类型。

3. 反向代理与负载均衡

策略选择:

轮询(默认)、权重(weight)、IP哈希(ip_hash)、最少连接(least_conn)。

健康检查:

max_fails 3; + fail_timeout 30s; 标记故障节点。

缓冲区优化:

proxy_buffers 8 16k; 调整响应缓冲区大小。

proxy_buffer_size 4k; 初始响应头缓冲区。

4. SSL/TLS加速

协议与加密套件:

ssl_protocols TLSv1.2 TLSv1.3; 禁用旧协议。

优先ECDHE密钥交换,如 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256;。

性能优化:

ssl_session_cache shared:SSL:10m; 会话复用。

ssl_session_timeout 10m; 会话有效期。

ssl_stapling on; 启用OCSP装订减少验证延迟。

5. 缓存配置

反向代理缓存:proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m;

proxy_cache_key "$scheme$request_method$host$request_uri";

浏览器缓存:

expires 30d; 静态资源长期缓存。

add_header Cache-Control "public"; 明确缓存策略。

6. 日志优化

减少磁盘IO:

access_log off; 或 access_log /var/log/nginx/access.log buffer=64k flush=1m;。

定期切割日志(使用logrotate或脚本)。

日志级别:error_log warn; 避免冗余调试信息。

7. 操作系统调优

文件描述符:

worker_rlimit_nofile 65535; 提升Nginx限制。

修改系统限制:ulimit -n 65535(写入/etc/security/limits.conf)。

网络参数:# 调整内核参数(/etc/sysctl.conf)

net.core.somaxconn = 65535

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_fin_timeout = 30

8. 安全加固

隐藏版本:server_tokens off;。

请求限制:

limit_conn_zone $binary_remote_addr zone=conn_limit:10m; 限制并发连接。

limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; 请求速率限制。

超时控制:client_body_timeout 10s; 防止慢客户端攻击。

9. 高级优化

启用HTTP/2:listen 443 ssl http2; 提升多路复用效率。

动态模块:

Brotli压缩(替代Gzip,更高压缩率)。

Lua脚本(ngx_lua模块实现复杂逻辑)。

禁用非必要模块:编译时移除未用模块(如--without-http_ssi_module)。

10. 性能监控与测试

监控工具:stub_status 模块实时查看连接状态。

压测工具:使用 wrk 或 ab 模拟高并发场景。

持续调优:根据监控数据调整配置(如缓存策略、连接数)。

通过上述策略,可显著提升Nginx的吞吐量、降低延迟,并增强服务稳定性。建议结合具体场景逐步调整,并通过压测验证效果。