---
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 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 能稳定支撑高并发流量。以压测与监控闭环验证调整效果。

发表评论 取消回复