Nginx的内置缓存功能

nginx的proxy模块 可以实现类似于Squid的缓存功能,HTTP的缓存与文件系统或者块设备的缓存还有所不同,文件系统或者块设备的缓存可以使用预取方法做优化,提前预取出将要被访问的部分,但是HTTP的缓存却无法预知文件的访问情形。

可以在nginx里面实现动态页面的静态化工作。用户第一次访问index.php页面,由于nginx的缓存中没有,会访问相应的文件,第二次再访问index.php的时候,由于已经缓存在了nginx的proxy_cache中,Nginx当接收到请求之后就不会将请求传送到upstream服务器里面了。

具体的配置方法如下:
在http域内添加如下参数

proxy_temp_path /usr/local/nginx/sy;
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=cache_zone:20m inactive=1d max_size=100m;

在location里面使用proxy_cache,
配置方法如下:

location ~* \.php$ {
proxy_cache cache_zone;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid any 1d;
proxy_pass http://127.0.0.1:8080;
}

这里面设置proxy_cache_key挺有意思的,他会根据这个key映射成一个hash值,然后存入到本地文件中,如果你设置的proxy_cache_key为 host h o s t uri 那么无论后面跟的什么参数,都会访问一个文件,不会再生成新的文件。
而如果proxy_cache_key设置了 isargs i s a r g s args,那么传入的参数 localhost/index.php?a=4 与localhost/index.php?a=44将映射成两个不同hash值的文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值