--- title: Nginx高性能配置与反向代理实践 keywords: - Nginx - 反向代理 - Keepalive - HTTP/2 - Gzip - worker_processes - worker_connections - upstream - 缓存 - 连接复用 description: 通过合理的进程与连接参数、HTTP/2/Gzip、upstream keepalive 等手段提升 Nginx 吞吐与稳定性,并给出验证方法。 date: 2025-11-25 categories: - 文章资讯 - 技术教程 --- # 概述 Nginx 在高并发场景下可作为反向代理与静态资源服务。本文提供高影响力的配置项与验证流程,确保优化可量化复现。 # 关键参数(已验证) - `worker_processes auto;`:自动匹配 CPU 核数,避免手动误配。 - `worker_connections`:按目标并发与文件句柄上限估算(如 8192–65535,结合 `ulimit -n`)。 - `keepalive_timeout 15s;`:保持合理连接复用,过长占用资源,过短增加握手。 - `sendfile on; tcp_nodelay on; tcp_nopush on;`:优化传输与包行为。 # 反向代理与压缩 ```nginx http { gzip on; gzip_types text/plain text/css application/javascript application/json image/svg+xml; gzip_min_length 1024; http2_max_concurrent_streams 128; upstream api_backend { server 10.0.0.11:8080 max_fails=3 fail_timeout=10s; server 10.0.0.12:8080 max_fails=3 fail_timeout=10s; keepalive 64; } server { listen 443 ssl http2; server_name example.com; location /api/ { proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://api_backend; } } } ``` # 静态资源与缓存 ```nginx location /static/ { root /var/www/site; expires 7d; add_header Cache-Control "public, max-age=604800"; } ``` # 连接与队列 - `proxy_connect_timeout 3s`、`proxy_read_timeout 30s`:避免长时间阻塞。 - `upstream keepalive`:复用到后端的连接,降低后端握手开销。 # 验证流程 - 压测工具:`wrk -t4 -c1000 -d60s https://example.com/api`,记录 QPS 与 P95/P99。 - 观察错误与队列:`error_log`、`stub_status` 或 `status` 模块查看活跃连接与丢弃。 - 发布前后对比:同一接口与负载,确认 QPS 与延迟改善。 # 常见误区 - `keepalive_timeout` 过大导致连接占用与资源泄露风险。 - 未配置 `upstream keepalive`,后端握手压力大。 - 过度压缩图片等已压缩资源,浪费 CPU。 # 结语 在合理的连接/线程配置与代理策略下,Nginx 能稳定支撑高并发流量。以压测与监控闭环验证调整效果。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部