jrgf 发表于 2018-11-17 12:57:38

CentOS7 Apache调优之mod_expires网页缓存时间

  现在的Web网站会由很多的图片、脚本、css以及flash等这些元素嵌入到页面中,如果不设置缓存或者缓存设置不当,会导致客户端向Web服务器访问时都会重新下载一次这些内容,浪费了很多带宽。通过Apache的mod_expires缓存模块来设置ExpiresHeader来缓存这些文件。expires模块通过Header报文来指定特定类型的文件在浏览器中的缓存时间,比如像图片、flash等这些在发布后不需要经常做修改的内容。因此做了缓存之后,浏览器从web服务器上下载第一次之后,就不需要重新再次下载这些文件了,而是直接从浏览器的缓存中读取了。通过这样的设置能够让客户端的访问速度加快,同时也节省了很多带宽。
  安装方法:编译时configure后面加--enable-expires即可,如果在编译安装时没有安装该模块,可以参考《CentOS7 Apache调优之开启deflate压缩模块,http://blog.51cto.com/taoyeno1/2097238》文章中单独编译模块的方法。
  
  /usr/local/apache/bin/apxs -c -i -a /usr/local/src/httpd-2.4.33/modules/filters/mod_expires.c
  vi /usr/local/apache/conf/httpd.conf,找到并开启
  LoadModule expires_module modules/mod_expires.so
  
  缓存的方法有三种,分别是对目录,对全局,对虚拟主机
  
  
  ExpiresActive on
  ExpiresDefault "access plus 12 month"
  ExpiresByType text/html "access 12 month"
  ExpiresByType text/css" access 12 month"
  ExpiresByType image/gif" access 12 month"
  ExpiresByType image/jpeg" access 12 month"
  ExpiresByType image/jpg "access 12 month"
  ExpiresByType image/png "access 12 month"
  ExpiresByType application/x-shockwave-flash "access 12 month"
  ExpiresByType application/x-javascript "access 12 month"
  ExpiresByType video/x-flv "access 12 month"
  
  
  全局缓存:直接在httpd.conf中配置以上内容
  
  
  目录缓存:在httpd.conf中,找到你的网站目录位置中添加以上内容
  
  
  #上面配置
  
  
  
  虚拟主机:
  #
  #    ServerAdmin webmaster@dummy-host2.example.com
  #    DocumentRoot "/usr/local/apache/htdocs"
  #    ServerName 127.0.0.1:80
  #    ErrorLog "logs/dummy-host2.example.com-error.log"
  #    CustomLog "logs/dummy-host2.example.com-access.log" common
  #    在这里加入上面的配置
  #
  
  expires模块语法:
  expires模块用到了ExpiresDefault和ExpiresByType两个指令,以下是这两个指令的语法:
  
  ExpiresDefault "{}*"
  ExpiresByType type/encoding '{}'
  
  其中,base的参数有三个:access,now(等价于'access'),modification
  plus关键字是可选的
  
  必须是整数,确保可以atoi()所接收,(atoi可以把字符串转换成长整型数)
  参数类型:years,months,weeks,days,hours,minutes,seconds
  使用缓存的好处:

[*]  缩短服务响应时间,
[*]  减少服务器负载,
[*]  减少所需的网络带宽量,降低成本。
  缓存的缺点:由于使用了缓存,导致被缓存的内容有更新时,客户端看到的还是旧的
  解决方案:

[*]  根据业务内容和需求,缩短缓存的时间
[*]  修改缓存文件的命名
  
  
  
  

页: [1]
查看完整版本: CentOS7 Apache调优之mod_expires网页缓存时间