最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 中如何有效缩短请求响应时间
时间:2026-07-09 09:48:46 编辑:袖梨 来源:一聚教程网
降低Nginx响应时间需聚焦连接建立、请求处理、后端转发、资源交付四环节,通过长连接复用、DNS缓存、静态资源本地服务、关闭冗余日志、优化worker配置、启用sendfile与高效缓存压缩等措施精准优化。
降低 Nginx 请求响应时间,关键不是堆参数,而是精准切中连接建立、请求处理、后端转发和资源交付这四个耗时环节。多数百毫秒级延迟,其实来自重复建连、阻塞解析、冗余日志或缓存未生效等可避免问题。
复用连接,减少三次握手开销
短连接是 TTFB(首字节时间)升高的主因。必须让客户端与 Nginx、Nginx 与后端都保持长连接:
- 在
http或server块中设keepalive_timeout 25;(纯 API 场景推荐 15–25 秒) - 在
upstream块中启用连接池:keepalive 32;,并配套写入proxy_http_version 1.1;和proxy_set_header Connection ""; - 确保 upstream server 使用固定域名(如
server api.example.com;),禁用proxy_pass http://$host这类变量写法,否则每次请求都会触发 DNS 解析
加速 DNS 解析与路径处理
动态解析上游地址或执行复杂重写,会把毫秒级延迟变成百毫秒级:
- 显式配置 DNS 缓存:
resolver 8.8.8.8 114.114.114.114 valid=30s;,再加resolver_timeout 3s; - 静态资源走本地服务,不走 proxy_pass:
location ~* .(js|css|png|woff2)$ { expires 365d; add_header Cache-Control "public"; } - 关闭非必要日志:对健康检查、静态资源等路径,在 location 中写
access_log off;;避免全局开启access_log写磁盘干扰连接建立
提升单 worker 处理能力
worker 进程若频繁争抢 CPU 或卡在文件 I/O,响应就会抖动:
-
worker_processes auto;(自动匹配物理核心数),并启用worker_cpu_affinity auto; -
worker_rlimit_nofile 200000;,同时在系统层同步调高:* soft nofile 65535、* hard nofile 65535 - 启用高效文件传输:
sendfile on;、tcp_nopush on;、open_file_cache max=1000 inactive=20s;
压缩与缓存协同减载
响应体大、重复生成、反复读磁盘——这三类问题都能被压缩+缓存组合解决:
- Gzip 开启且设合理阈值:
gzip on; gzip_min_length 500; gzip_comp_level 6; gzip_types text/css application/javascript application/json; - 静态资源强缓存:
expires 365d;;动态接口配合后端Cache-Control: public, max-age=60可缓存 1 分钟 - 若支持 Brotli,压缩率更高:
brotli on; brotli_comp_level 8; brotli_types text/plain application/json;(需编译 ngx_brotli 模块)
相关文章
- 高德地图路线规划显示异常怎么办 07-09
- 漫蛙漫画官方版正版ios如何安装 07-09
- 胖东来官网地址-胖东来官方网站入口地址 07-09
- investopedia官网中文版入口-investopedia国内能用的官方网页版入口地址 07-09
- 一点文学txt小说网站入口-一点文学小说官网入口地址2026最新 07-09
- 易校园怎么绑定微信 07-09