Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1906928
  • 博文数量: 211
  • 博客积分: 464
  • 博客等级: 下士
  • 技术积分: 3794
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-24 18:25
个人简介

阿弥陀佛

文章分类

全部博文(211)

文章存档

2020年(2)

2019年(3)

2018年(5)

2017年(6)

2016年(10)

2015年(9)

2014年(73)

2013年(90)

2012年(13)

分类: 服务器与存储

2014-02-08 11:33:37

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

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

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

点击(此处)折叠或打开

  1. proxy_temp_path /usr/local/nginx/sy;
  2. proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=cache_zone:20m inactive=1d max_size=100m;
在location里面使用proxy_cache,
配置方法如下:

点击(此处)折叠或打开

  1. location ~* \.php$ {
  2. proxy_cache cache_zone;
  3. proxy_cache_key $host$uri$is_args$args;
  4. proxy_cache_valid any 1d;
  5. proxy_pass
  6. }

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

阅读(18952) | 评论(1) | 转发(2) |
给主人留下些什么吧!~~

samly712016-05-17 12:55:06

不错!