Nginx 中怎么配置 proxy_cache 结合 proxy_buffering 实现极速代理

阿静小哥_7105

阿静小哥_7105

2026-10-31

616人浏览

原创

Nginx代理响应快如闪电的关键是proxy_cache与proxy_buffering协同工作:缓存复用响应,缓冲优化后端交互与客户端输送;需合理配置缓存路径、键值、状态头,并调优缓冲区大小,同时确保权限与请求头正确以保障命中率。

nginx 中怎么配置 proxy_cache 结合 proxy_buffering 实现极速代理

要让 Nginx 代理响应快如闪电,关键不是单纯开缓存,而是让 proxy_cache 和 proxy_buffering 协同工作:缓存负责复用已有响应,缓冲则决定 Nginx 如何与后端交互、如何向客户端输送数据。两者配合得当,才能真正降低延迟、提升吞吐。

一、基础缓存配置(proxy_cache)

先确保缓存路径、区域和基本策略就位:

  • 在 http 块中定义缓存区:
    proxy_cache_path /var/cache/nginx/proxy levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    注意 use_temp_path=off 可避免临时文件拷贝,提升写入效率。
  • 在 location 或 server 块中启用缓存:
    proxy_cache my_cache;<br>proxy_cache_valid 200 302 10m;<br>proxy_cache_valid 404 1m;<br>proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;<br>proxy_cache_lock on;<br>proxy_cache_lock_timeout 5s;

    proxy_cache_lock 防止缓存未命中时多个请求同时穿透到后端,updating 表示允许用旧缓存响应,同时后台异步更新。

二、缓冲行为调优(proxy_buffering)

proxy_buffering 默认开启,但它影响的是 Nginx 接收后端响应的方式——不是简单透传,而是攒够缓冲区再发给客户端。这对缓存命中尤其重要:

Umbrel Proxy Manager
Umbrel Proxy Manager

高效管理与交互 Umbrel 代理服务,支持 Docker 容器。自动发现运行服务,将内部 Docker IP 映射为可访问的外部地址。

下载
  • 保持 proxy_buffering on;(默认),并合理设置缓冲大小:
    proxy_buffer_size 4k;<br>proxy_buffers 8 16k;<br>proxy_busy_buffers_size 32k;

    缓冲区太小会导致频繁刷写;太大则增加内存占用和首字节延迟。一般静态资源或 JSON API 用 8 16k 较平衡。
  • 对缓存命中的响应,Nginx 会直接从磁盘/内存缓存读取并走缓冲链路发送,此时 proxy_buffering 实际加速了「读缓存 → 发送」流程;若关掉它,Nginx 会边读边发,反而可能因 TCP 窗口、客户端接收慢等问题拖慢整体响应。
  • 慎用 proxy_buffering off;——仅适用于流式响应(如 SSE、大文件下载),但会绕过缓存的缓冲优化机制,失去极速优势。

三、命中加速的关键细节

光有配置不够,还要确保缓存真能被高效命中并快速返回:

  • 统一缓存键:用 proxy_cache_key 显式控制键生成,避免因 Host、大小写、多余空格等导致重复缓存:
    proxy_cache_key "$scheme$request_method$host$request_uri";
    不含 $cookie_、$args(除非业务明确需要按参数区分)。
  • 跳过不缓存的响应:后端返回的 Cache-Control: no-store 或 Set-Cookie 头默认禁用缓存。如需强制缓存,加:
    proxy_ignore_headers Cache-Control Expires Set-Cookie;<br>proxy_cache_bypass $arg_nocache;
  • 启用缓存状态头便于调试:
    add_header X-Cache-Status $upstream_cache_status;
    响应头出现 HIT 才算真正生效;MISS 或 BYPASS 要查原因。

四、验证与常见陷阱

上线前务必实测缓存行为:

  • 用 curl -I 多次请求同一 URL,观察 X-Cache-Status 是否从 MISS 变成 HIT,且响应时间明显下降(毫秒级)。
  • 检查缓存目录权限:/var/cache/nginx/proxy 必须由 Nginx 工作进程用户(如 www-data 或 nginx)可读写,否则日志里会出现 cache file not found 类错误。
  • 避免和 proxy_pass_request_headers off 或 proxy_set_header 错误覆盖 Host/Connection 导致后端拒绝响应,从而无法生成缓存。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx proxy

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3272

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3016

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5672

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习