概述

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 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 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部