nginx的反向代理缓存

简介: 假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求的机器上设置缓存(或是让运营商定时过来抓取一次数据)   nginx设置web缓存,需要用到的相关指令: 1、proxy_cache ...

假设有两台物理机,他们分属于不同的域名,以webgame的游戏运营商和开发商为例,运营商需要获取游戏中的排行数据,开发商为了过多对游戏服务器的请求,会在发起请求的机器上设置缓存(或是让运营商定时过来抓取一次数据)

 

nginx设置web缓存,需要用到的相关指令:

1、proxy_cache

2、proxy_cache_path

3、proxy_cache_valid

 

需要注意的事项:

1、windows下面设置缓存不会在指定的path生成的缓存文件

2、指定的path上一级目录需要存在,否则会报错 (假设缓存文件存放于/usr/local/cc/abc,那么cc目录需要事先建立)

3、proxy_cache_path 只能存放于http中,不能放置于server或location

 

具体的实例:

proxy_cache_path /usr/local/nginx_rank_cache levels=1:2 keys_zone=rankCache:1m inactive=1h max_size=30m;

第一次请求过来时,将对应将生成如下目录:

image

image

上面指令中 “/usr/local/nginx_rank_cache”为缓存存放的目录路径

levels指定该缓存空间有两层hash目录,第一层目录为1个字母,第二层为2个字母,对应上图中的“3”和“b6”

 

keys_zone=rankCache 参数用来为这个缓存区起名(proxy_cache 指令需要用到  其后对应缓存区名称)

:1m 指内存缓存空间大小为1MB

inactive 的1h指如果缓存数据在1小时(天:d、秒:s、分:m)内没有被访问,将自动被删除;

max_size=30m 指硬盘缓存大小为30MB

 

打开上图中的缓存文件,可以看到如下信息(编码格式有点问题,显示乱码了):

image

 

用Fiddler抓取第一次请求时的数据,将可以看到如下的响应(在不清除缓存的情况下,过期时间内的请求都直接是Cache,Fiddler抓取不到这样的请求):

image

image

从05:58~17:58中间有12个hours,而nginx上也是这样设置的:

proxy_pass   http://youdomain.com;
proxy_set_header host otherdomain.com';
proxy_cache rankCache;
proxy_cache_valid  200 304  12h;
proxy_cache_valid any 1m;

expires 12h;

 

proxy_cache_valid指令,可以在http、server、location中使用,如果proxy_cache_valid 不指定状态码,直接指定缓存时间,将只缓存默认的状态码(200、301、302),而如果需要对304也指定,则需要写完整的状态码,如上面写的200 304

 

还有其它的指令,如:proxy_cache_methods、proxy_cache_min_uses、proxy_cache_key等,根据实际需要自定义。

 

合理的使用缓存,可以提高页面访问的速度、节省带宽~

 

有兴趣延伸浏览资料的话,可以看看MSDN上的《Fiddler PowerToy - Part 2: HTTP Performance

目录
打赏
0
0
0
0
2
分享
相关文章
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
301 20
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
247 61
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
257 60
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
342 60
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
215 11
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
129 5
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
911 1
nginx配置反向代理404问题