首页 > 开发 > Apache > 正文

apache的缓存使用和指令介绍

2020-07-28 15:07:21
字体:
来源:转载
供稿:网友
  用缓存需要注意如下事项:
 
  要使用缓存,必须使用指令CacheEnable启用它,目前可用的缓存类型为disk或mem,禁止缓存可以使用CacheDisable,如CacheDisable/private
 
  待缓存的URL返回的状态值必须为:200、203、300、301或410
 
  URL的请求方式必须是GET方式
 
  发送请求时,头部中包含“Authorization:”的字符串时,返回的内容将不会被缓存
 
  URL包含查询字符串,如问号?后的那些东西,除非返回的内容包含“Expires:”,否则不会被缓存
 
  如果返回的状态值是200,则返回的头部信息必须包含以下的一种才会被缓存:Etag、Last-Modified、Expires,除非设置了指令CacheIgnoreNoLastModOn
 
  如果返回内容的头部信息“Cache-Control:”中包含“private”,除非设置了指令CacheStorePrivateOn,否则不会被缓存
 
  如果返回内容的头部信息“Cache-Control:”中包含“no-sotre”,除非设置了指令CacheStoreNoStoreOn,否则不会被缓存
 
  如果返回内容的头部信息“Vary:”中包含了“*”,不会被缓存
 
  其它一些指令的介绍:
 
  如果你的网站有几个文件的访问非常频繁而又不经常变动,则可以在Apache启动的时候就把它们的内容缓存到内存中(当然要启用内存缓存系统),使用的是mod_file_cache模块,具体如下:
 
  有多个文件可以用空格格开
 
  MMapFile/var/www/html/index.html/var/www/html/articles/index.html
 
  上面是缓存文件的内容到内存中,除此之外,还可以只缓存文件的打开句柄到内存中,当有请求进来的时候,Apache直接从内存中获取文件的句柄,返回内容,和MMapFile指令很像,具体如下:
 
  CacheFile/var/www/html/index.html/var/www/html/articles/index.html
 
  上面两个指令所缓存的文件如果有修改的话,必须重启Apache或使用graceful之类的方式强制使Apache更新缓存数据,否则当用户访问的时候获取的不是最新的数据。
 
  有时候需要根据某些特殊的头部信息来决定是否进行缓存,则可以使用如下指令:
 
  当头部信息中包含Set-Cookie时则跳过不进行缓存操作
 
  CacheIgnoreHeadersSet-Cookie
 
  有时候需要缓存的时候跳过URL中的查询字符串?使用如下指令:
 
  CacheIgnoreQueryStringOn
 
  Apache的缓存系统不仅可以缓存服务器本身的文件,也可以缓存通过代理得到的内容,对了,Apache可以像Squid一样做代理,而且做的还不错,善用Apache的缓存功能,可以让你的网站速度提升不少。
 
  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表