keengo 发表于 2012-5-24 15:39:19

kangle的强制缓存功能介绍和设置

      强制缓存功能,已经在kangle 2.9.4的免费版中可启用。

      强制缓存,可以强制缓存一些动态网页,性能提升1000倍。建议大家去研究、去使用。

      强制缓存功能,该功能用来缓存动态网页结果。正确使用这个功能将会大大降低资源占用,提高网站访问质量。这对于需要动态网页缓存的网站将是一个不错的功能。默认情况下kangle是不会缓存动态网页的。这个功能,需要明确指定才会启用。

    Kangle作web服务器或反向*代*理*服*务*器*,都可以应用强制缓存功能。

      网站为了更快的提高速度可以考虑用这个强制缓存。一般来说,比较大的网站难免有自己的会员系统。 常见的门户、 论坛、 都包含会员系统。一般用户是不会单纯为了提高访问效果, 造成会员登录出问题,这样就得不偿失。
      使用kangle的强制缓存功能,可以做到与会员相关的数据不缓存,其它的数据进行缓存。
      用ssi包含可实现一些子页面缓存,其它不缓存。

强制缓存如何设置?         有两种方式:         第一种方式是不需要修改程序,通过kangle的访问控制来实现。   在回应控制里面有一个Cache_Control的模块。这个模块有一个静态化的选项,勾上它即可。再输入缓存时间(单位是秒),可以配合其它的模块,按你的意愿来实现静态化。比如说哪些目录,或者哪些文件。例子:
1. host模块是匹配www.test.com这个网站强制缓存。2. regpath是匹配/admin/这个目录,注意前面的勾,表示不缓存这个目录。强制缓存会把网站的内容都缓存下来,所以像管理登陆帐号等目录要设置不缓存。3. status_code是匹配状态码,如果访问过程中出现503,504等错误码也会缓存,所以我们设置这个模块,只缓存可以正常访问的200状态码页面。kangle 3.1才有的功能,3.1以前的版本就不用加这个模块4. cache_control模块就是设置强制缓存的了,max_age是缓存时间,last_modified是会增加一个Last-Modified的头,soft就是表示不发送max-age给浏览器,即浏览器不缓存,而只是kangle缓存。否则两边都缓存。

       第二种方式是修改你的程序,送一个Cache-Control的头。Cache-Control有static内容就可以。下面是php的例子。 <?php      header("Cache-Control: static,max-age=120");    ?>max-age是指定缓存时间(秒).      看看是否生效,第一次访问是经过php,第二次访问就不用。   可查看access.log访问日志。每条记录的后面[]里面,如果有C表示是从缓存给出的。

钱佬 发表于 2012-5-24 15:52:37

:victory:沙发。。。我得试试看。

mybove 发表于 2012-5-24 16:22:29

虽然是板凳。但是我不知道这个具体怎么用法。谁能搞一个详细的教程就好了。

qweqwe716 发表于 2012-5-24 17:58:36

很好 很给力了。速度确实快了很多。

科易网技术部 发表于 2012-5-24 18:31:07

本帖最后由 科易网技术部 于 2012-5-24 18:59 编辑

强制静态化生成确实可以提高速度,关键是不需要再费心思去把动态页面生成静态了;
如果配合伪静态地址,可以很好地解决例如大量数据的列表页,详细页等的问题。
不过要注意的是,Cache_Control是提供给浏览器进行控制本地缓存的,在这段时间里,
服务端就算数据已经变化了,客户端浏览器仍然不会去服务端请求数据。

wkl17 发表于 2012-5-25 21:28:42

同时 支持Windows/Linux?

crx349 发表于 2012-5-26 01:06:25

问下asp怎么用呢?

李.玛利奥 发表于 2012-5-29 05:56:02

如果我要登陆
例:www.hao123.com进不去,用www.baidu.com代替,具体怎么操作呀?

姚大爷 发表于 2012-6-2 16:58:12

本帖最后由 姚大爷 于 2012-6-2 17:00 编辑

经过测试,如果使用伪静态的话,原始地址(也就是请求的.html地址)对应到php文件时实际上还是在后端重新读取php文件,并没有去读取对应的php页面缓存文件。(php形式的直接访问文件可以实现读取缓存文件,停掉php-cgi.exe就可以看出效果)
看了下临时文件,html请求对应的缓存就是一个跳转内容,直接绕过缓存提交给php页面一个请求,也就是实际上还需要再次执行php页面,php的缓存才是完整的。
这个问题也是今天停掉mysql数据库的时候才发现的。
换句话说,如果是静态文件形式的伪静态,先是请求的跳转,然后才是php文件,实际上比不开缓存还多走一步,没有起到实际作用。

姚大爷 发表于 2012-6-2 17:20:47

科易网技术部 发表于 2012-5-24 18:31 static/image/common/back.gif
强制静态化生成确实可以提高速度,关键是不需要再费心思去把动态页面生成静态了;
如果配合伪静态地址,可 ...

伪静态实际上还多一道工序去请求php执行页面。
页: [1] 2
查看完整版本: kangle的强制缓存功能介绍和设置