当前位置:首页 > 日记 > 正文

apache2.0x 开启gzip压缩和http缓存的配置方法

apache2.0x 开启gzip压缩和http缓存的配置方法

先谈gzip的配置方法,在apache2.0以上(包括apache2.0)的版中gzip压缩使用的是mod_deflate模块,下面是具体配置步骤:

第1步

LoadModule deflate_module modules/mod_deflate.so

LoadModule headers_module modules/mod_headers.so

打开httpd.conf后,先将上面两行配置前面的#号去掉,这样apache就会启用这两个模块,其中mod_deflate是压缩模块,就是对要传输到客户端的代码进行gzip压缩;mod_headers模块的作用是告诉浏览器页面使用了gzip压缩,如果不开启mod_headers那么浏览器就会对gzip压缩过的页面进行下载,而无法正常显示。

第2步

在httpd.conf中加入以下代码,可以加到任何空白地方,不了解apache的朋友,如果担心加错地方,就放到http.conf文件的最后一行。

<IfModule mod_deflate.c>    SetOutputFilter DEFLATE    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩

SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

AddOutputFilterByType DEFLATE text/* #设置对文件是文本的内容进行压缩,例如text/html  text/css  text/plain等    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp #这段是告诉apache对php类型的文件进行压缩

BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的    BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成 Netscape ,但是事实上它没有问题

Header append Vary User-Agent env=!dont-vary #确保代理不会发送错误的内容</IfModule>

本配置到这里apache中的gzip压缩就配置完成,重启apache后,新的配置就会生效,当然这里我们还不会重启apache因为下一步要配置http缓存,也就是mod_expires模块。

第1步

LoadModule expires_module modules/mod_expires.so

在httpd.conf中,找到上面的代码,然后将前面的#去掉

第2步

在httpd.conf中加入以下代码,可以加到任何空白地方,不了解apache的朋友,如果担心加错地方,就放到http.conf文件的最后一行。

<IfModule mod_expires.c>    ExpiresActive On #激活http缓存,也就是个开关,必须有的一段代码    ExpiresDefault A604800 #默认缓存时间为604800秒,也就是7天,A表示以客户端时间为准    ExpiresByType text/css A3600 #对css文件缓存3600秒,也就是1小时,A表示以客户端时间为准    ExpiresByType text/html A3600 #对html文件缓存3600秒,也就是1小时,A表示以客户端时间为准    ExpiresByType application/x-javascript A3600 #对javascript文件缓存3600秒,也就是1小时,A表示以客户端时间为准    ExpiresByType image/gif "access plus 2 month" #对gif图片缓存2个月,以客户端时间为准    ExpiresByType image/jpeg "access plus 2 month" #对jpeg和jpg图片缓存2个月,以客户端时间为准    ExpiresByType image/png "access plus 2 month" #对png图片缓存2个月,以客户端时间为准    ExpiresByType image/x-icon "access plus 2 month" #对浏览器小图标缓存2个月,以客户端时间为准    ExpiresByType application/x-shockwave-flash A2592000 #对flash文件缓存2592000秒,也就是1个月,A表示以客户端时间为准

#特别注意也可以使用 ExpiresByType text/css M3600  这里的M表示以文件最后修改时间为准缓存1小时,例如有些时候,我们的HTML是大批量定时更新的,这个时候就可以用到M

Header unset Pragma #删除掉http头信息中的Pragma,不懂的可以ogle一下Pragma,他也是控制浏览器缓存的,不过是用于http1.0标准  FileETag None  Header unset ETag #这段代码和上面一段的作用是不使用http1.1标准中的ETag属性  <FilesMatch "\.(js|css|ico|pdf|flv|jpg|jpeg|png|gif|mp3|mp4|swf)$"> #针对js|css|ico等后缀的文件进行单独设置  #Header set Expires "Thu, 15 Apr 2013 20:00:00 GMT"  Header unset Last-Modified #不使用http头信息中的Last-Modified属性,Last-Modified是指文件最后修改时间  Header append Cache-Control "public" #设置为可被任何缓存区缓存  </FilesMatch></IfModule>

上面的配置是我自己的服务器上正在使用的配置方法,在这里与大家分享一下,代码不会有错,最后不要忘记重启apache服务器哦!

如果有apache高人有更好的配置,请指教一下!

如果用的虚拟主机,而虚拟主机支持.htaccess,则可以将上面的代码放到.htaccess文件中。

相关文章

从零开始学习Node.js系列教程六:Eve

从零开始学习Node.js系列教程六:Eve

事件,学习,教程,方法,示例,本文实例讲述了Node.js EventEmitter发送和接收事件的方法。分享给大家供大家参考,具体如下:pulser.js/* EventEmitter发送和接收事件 HTTPServer和HTTPClient类,它们都继承自EventEmitter EventEmitter被定义在Node…

Excel2007中表格列序号字母改为数

Excel2007中表格列序号字母改为数

数字,操作方法,中表,序号,字母,  怎么把excel表格内列的序号由默认的字母改为数字,该怎么具体去操作的呢?今天,小编就教大家在Excel2007中表格列序号字母改为数字的操作方法。Excel2007中表格列序号字母改为数字的操作步骤把开一个excel表…

JS 实现banner轮播效果 | 鼠标事件

JS 实现banner轮播效果 | 鼠标事件

鼠标事件,效果,电脑软件,JS,banner,一.要实现的效果1.点击左右可切换图片2.点击小圆点 可切换图片二.效果图三.代码1.css<style type="text/css">body,img,span,ul,li{margin: 0;padding: 0;}#div1{width: 600px;height: 350px;margin: 1…

配置IIS服务器,支持sis、SISX、3GP

配置IIS服务器,支持sis、SISX、3GP

服务器,支持,配置,文件下载,电脑软件,配置IIS服务器,支持sis、SISX、3GP、ADP、AMR、JAD、JAR、MMF、MFM、PMD、UMD等文件下载 问:如何开通WAP网站呢,让更多朋友通过手机来浏览的我网站呢?答:浏览WAP网站与WEB网站都是需要服务器端和终端支持的,W…

HTTP 错误 500.19 - Internal Serv

HTTP 错误 500.19 - Internal Serv

错误,解决办法,详解,电脑软件,HTTP,HTTP 错误 500.19 - Internal Server Error最近做项目出现了这个错误,经过同事之间的讨论未能解决,之后百度一下找到了解决方法,这里就说下希望大家遇到这种错误可以顺利解决。无法访问请求的页面,因为该页的…

服务器上映射出20M的磁盘且无法分

服务器上映射出20M的磁盘且无法分

磁盘,格式化,服务器,射出,电脑软件,问题描述:用户反映SureFibre 640存储在服务器上自动映射出20M的磁盘,且无法分区格式化、更加无法使用。原因分析:目前在销的SureFibre系列存储,都具备带内管理的功能,如果启用了带内管理而没有安装带内管理代…

正则表达式d元字符 | 相对于数字0-

正则表达式d元字符 | 相对于数字0-

元字符,数字,正则表达式,相对于,电脑软件,正则表达式\d元字符:\d元字符可以匹配数字字符,等价于"[0-9]"。语法结构:构造函数方式:new RegExp(\\d)对象直接量方式:/\d/浏览器支持:IE浏览器支持此元字符。火狐浏览器支持此元字符。谷歌…

详解JavaScript数组过滤相同元素的

详解JavaScript数组过滤相同元素的

元素,数组,过滤,种方法,详解,方法一:比较内层循环变量的值.var arr = [1, 2, 3, 1, 3, 4, 5, 5];var resultArr = [];for (i = 0; i < arr.length; i++) { for (j = 0; j < resultArr.length; j++) { if (resultArr[j] == arr[i]) { …

Bootstrap Multiselect插件使用步

Bootstrap Multiselect插件使用步

参数,插件使用,步骤,配置详解,常见, Multiselect是基于jQuery插件的,它可以以下拉列表的形式为用户提供选择内容,能进行单选或者多选。它应用的主要步骤如下:一,引入需要的相关js和css文件既然是Bootstrap插件,又是基于jQuery的,很明显主要就导入…

jQuery动态生成不规则表格 | 前后

jQuery动态生成不规则表格 | 前后

动态生成,不规则,表格,电脑软件,jQuery,一、需求:有这么一张表前四个属性当作联合主键需要把该表所有的行在前端以表格形式显示出来,要求activityId相同时合并成一行,activityCode相同时,合并一行,activityVersion相同时也合并一行。类似这种:二…

React-router v4 路由配置方法小结

React-router v4 路由配置方法小结

方法,路由配置,电脑软件,React,router,本文主要介绍了React-router v4 路由配置方法小结,分享给大家,也给自己留个笔记一. Switch 、Router 、Route三者的区别1、RouteRoute 是建立location 和 ui的最直接联系2、Routerreact-router v4 中,Rou…

详解Vue + Vuex 如何使用 vm.$next

详解Vue + Vuex 如何使用 vm.$next

如何使用,详解,电脑软件,Vue,Vuex,vm.$nextTick简单说,因为DOM至少会在当前tick里面的代码全部执行完毕再更新。所以不可能做到在修改数据后并且DOM更新后再执行,要保证在DOM更新以后再执行某一块代码,就必须把这块代码放到下一次事件循环里面…