首页 > 其他分享 >代理缓存

代理缓存

时间:2025-01-23 17:22:45浏览次数:1  
标签:缓存 http Nginx cache 代理 响应 proxy

Nginx能够有效地缓存指定的静态资源文件,提高网站的响应速度和性能

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
    
    server {
        location ~* \.(js|jpg|jpeg|png|gif|ico|css|svg|woff|woff2)$ {
            proxy_pass http://100.64.0.21:7292;
            proxy_cache my_cache;
            proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
            proxy_cache_valid 200 301 302 60m;
            proxy_cache_valid 404 1m;
            expires 1h;
            add_header Cache-Control "public, no-transform";
        }
    }
}

配置解释

/var/cache/nginx:指定缓存文件存储的路径为/var/cache/nginx

levels=1:2:设置缓存文件的目录层级结构为两级,第一级目录有1个字符,第二级目录有2个字符

keys_zone=my_cache:10m:定义缓存区域的名称为my_cache,分配的内存大小为10MB,用于存储缓存的元数据

max_size=10g:设置缓存数据的最大磁盘空间占用量为10GB

inactive=60m:如果某个缓存数据在60分钟内没有被访问,则会被认为是非活动的,Nginx会将其从缓存中删除

use_temp_path=off:Nginx直接将缓存数据写入最终的缓存文件路径,不使用临时路径,以提高缓存的写入性能

proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;

在以下情况下,Nginx会使用过期的缓存数据来响应客户端请求:

  • error:当与上游服务器通信出现错误时。
  • timeout:当请求上游服务器超时时。
  • http_500http_502http_503http_504:当上游服务器返回500、502、503、504等错误状态码时。

proxy_cache_valid 200 301 302 60m:对于状态码为200、301、302的响应,缓存有效期为60分钟

proxy_cache_valid 404 1m:对于状态码为404的响应,缓存有效期为1分钟。

expires 1h; 设置响应头中的Expires字段,告诉浏览器该资源的缓存有效期为1小时

add_header Cache-Control "public, no-transform"; 向响应头中添加Cache-Control字段,值为public, no-transformpublic表示该响应可以被任何缓存存储,包括浏览器缓存和中间缓存服务器;no-transform表示缓存服务器不能转换响应的内容,必须原样返回给客户端

标签:缓存,http,Nginx,cache,代理,响应,proxy
From: https://www.cnblogs.com/wangend/p/18688188

相关文章

  • Web安全:缓存欺骗攻击;基于缓存、CDN的新型Web漏洞
    基于缓存、CDN的新型Web漏洞漏洞原理利用方式解决方法Web缓存欺骗漏洞(WebCacheDeception)是一种利用不安全的缓存机制来泄露用户敏感信息的攻击方式。攻击者通过操控请求URL诱导缓存系统将敏感信息缓存并对其他用户公开,可能导致用户数据泄露等严重问题。漏洞原理......
  • 字节 GUI 代理模型 UI-TARS:具备像人一样的感知、推理、行动能力;SLAM-Omni:支持可控音色
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • NoETL更实时灵活 | 智能数据检索、动态数据缓存与成本最优执行计划联合保障无数据移动
    在数据管理领域,传统上我们习惯于通过数据复制、转换和整合到单一物理数据库的方式来满足所有信息需求。然而,这种方式常常以牺牲灵活性和数据交付速度为代价,换取查询性能的提升。面对海量数据,是否只能通过一再复制来实现理想的性能表现?答案是否定的。今天的技术进步让我们可以......
  • 微服务+多级缓存,性能起飞!
    微服务+多级缓存,性能起飞!Java后端编程 2025年01月23日09:05 福建原文地址:https://mp.weixin.qq.com/s/icQt1V_-Xs4vrA2z6DD58g架构师指南专注分享程序员架构师技术、Java后端、系统架构、微服务架构、分布式架构等等,助力你成为高级架构师!1篇原创内容公众号今......
  • 动态代理
    一、什么是动态代理?现在要给eat方法增加其它功能,例如吃饭之前添加拿筷子,盛饭。在已有的代码中插入,直接修改代码,我们叫做侵入式修改。而在一个成熟的项目中,这样做是很危险的,可能全崩啦!此时想要增加额外的功能而又不能修改原有代码,如何去做呢?此时我们可以找一个代理先帮我们做......
  • 正向代理和反向代理的定义以及区别
    代理服务器部署在客户端和服务器之间的服务器,可以代替客户端和服务器发送或接收消息正向代理定义正向代理,也是客户端代理,当客户端要访问目标服务器时,会先发送请求到代理服务器,由代理服务器将请求转发到目标服务器,并且接收目标服务器的响应,将响应返回给客户端。而目标服......
  • Java初学者笔记-11、反射注解动态代理
    Junit单元测试针对最小的功能单元:方法,编写测试代码对其进行正确性测试。Junit单元测试框架:可以用来对方法进行测试,它是第三方公司开源出来的(很多开发工具已经集成了Junit框架,比如IDEA)。可以灵活的编写测试代码,可以针对某个方法执行测试,也支持一键完成对全部方法的自动化测试,且各......
  • Python 实现 macOS 系统代理的设置
    Python实现macOS系统代理的设置设置SOCKS代理在macOS系统中,可以通过networksetup工具来设置SOCKS代理。以下是Python实现的方法:使用networksetup设置SOCKS代理importsubprocessdefset_socks_proxy(server,port):"""设置macOS系统的SOCKS......
  • 06、Redis相关概念:缓存击穿、雪崩、穿透、预热、降级、一致性等
    Redis相关概念:缓存击穿、雪崩、穿透、预热、降级、一致性等Redis缓存雪崩、缓存击穿、缓存预热热点key、缓存降级、短链接、分布式锁秒杀、预减库存、堆外缓存+Redis架构设计、Redis动态刷新、Redis和DB双写一致性、过期删除策略、集群数据倾斜等一、缓存雪崩缓存......
  • 怎样实现每次页面打开时都清除本页缓存?
    在前端开发中,有多种方法可以在每次页面打开时清除页面缓存。以下是一些建议的方法:使用Meta标签:在HTML的<head>部分,你可以使用<meta>标签来控制缓存行为。通过设置Cache-Control和Pragma为no-cache,以及Expires为0,你可以告诉浏览器不要缓存页面内容。<metahttp-equiv="Cache-C......