nginx针对特定URL进行本地缓存

自己踩坑的简单记录,在使用nginx中,有一些场景下,只需要对特定的url而不是某个应用(微服务)的全部内容进行缓存,这个时候可借助nginx自身的缓存功能实现。
(ps:如果为动静分离,不在本次的讨论范围内,实现方式网上的办法很多。)

这种方式也可用于实现热点内容的缓存,减少后端服务的压力。

  1. http节点添加:

proxy_cache_path 缓存目录 levels=1:2 keys_zone=cache_xxxx:1024m inactive=1d max_size=10g;

2. 在server节点添加:

location ~ ^/a/b/c/d/(.*)$ (要缓存的url地址,正则表达式) {

proxy_pass (内容未进行缓存时的请求路径);

proxy_cache cache_xxxx;

proxy_cache_valid 200 1d;

rewrite ^/a/b/c/d/(.*)$ /b/c/d/$1 break;

expires 1d;

}

ps: 如果针对对外的地址与内部转发的地址不一致的情况,可用rewrite指令实现,示例中将对外的/a/b/c/d为开头的请求转发到以/b/c/d为开头的后端服务器上。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部