龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 操作系统 > LINUX系统 >

Apache如何启用ETag,提高访问速度

时间:2016-02-16 11:03来源:网络整理 作者:网络 点击:
分享到:
Apache根据配置文件中的配置来设置Etag值,默认的Apache的FileEtag设置为: FileEtagINode Mtime Size 也就是根据这三个属性来生成Etag值,他们之间通过一些算法来实现,并输出成hex的格式,相邻

ETag全称EntityTags,HTTP协议规格说明中定义“ETag”为“被请求变量的实体值”。我们也可以把ETag理解为是一个客户端与服务器关联的记号。这个记号告诉客户端,当前网页在上次请求之后是否有发生变化,当发生变化时,ETag的值重新计算,并返回200状态码。如果没有变化,返回304状态码。从而不会重新加载整个页面信息。

以下会告诉你,Apache如何开启ETag。

Apache根据配置文件中的配置来设置Etag值,默认的Apache的FileEtag设置为:
       FileEtagINode Mtime Size
       也就是根据这三个属性来生成Etag值,他们之间通过一些算法来实现,并输出成hex的格式,相邻属性之间用-分隔,比如:"2e681a-6-5d044840",这里面的三个段,分别代表了INode,MTime,Size根据算法算出的值的Hex格式,可以改变Apache的FileEtag设置,比如设置成FileEtagSize,那么得到的Etag可能为:"6",设置了几个段,Etag值就有几个段。

 详细配置:

步骤1
       
在要启用ETag的目录下增加.htaccess文件并在其中增加一行,如图:FileETagMTime Size

以覆盖默认的Innode MTime Size的ETag,因为默认的ETag使用到的Innode会导致相同的文件在分布式服务器上产生的ETag不同。

步骤2
       如果.htacces文件已经存在,请确保要启用ETag的目录/.htacces文件中没有FileETagNone。如果存在FileETag None,请删去该行。

检查没有用mod_headers将ETag除去,即httpd.conf文件中没有出现下面的语句,
       LoadModuleheaders_module modules/mod_headers.so 
       Headerunset ETag
如果出现如图情况,请删除Headerunset ETag这一行。

步骤3      重新启动httpd,就启用ETag了。

精彩图集

赞助商链接