---

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;:优化传输与包行为。

反向代理与压缩

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;
    }
  }
}

静态资源与缓存

location /static/ {
  root /var/www/site;
  expires 7d;
  add_header Cache-Control "public, max-age=604800";
}

连接与队列

  • proxy_connect_timeout 3sproxy_read_timeout 30s:避免长时间阻塞。
  • upstream keepalive:复用到后端的连接,降低后端握手开销。

验证流程

  • 压测工具:wrk -t4 -c1000 -d60s https://example.com/api,记录 QPS 与 P95/P99。
  • 观察错误与队列:error_logstub_statusstatus 模块查看活跃连接与丢弃。
  • 发布前后对比:同一接口与负载,确认 QPS 与延迟改善。

常见误区

  • keepalive_timeout 过大导致连接占用与资源泄露风险。
  • 未配置 upstream keepalive,后端握手压力大。
  • 过度压缩图片等已压缩资源,浪费 CPU。

结语

在合理的连接/线程配置与代理策略下,Nginx 能稳定支撑高并发流量。以压测与监控闭环验证调整效果。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部