您好,歡迎來(lái)到58網(wǎng)站目錄!
當(dāng)前位置:58網(wǎng)站目錄 » 站長(zhǎng)資訊 » SEO優(yōu)化技術(shù) » SEO » 文章詳細(xì)

ETag助力站點(diǎn)提交sitemap ~對(duì)站點(diǎn)服務(wù)器如何配置ETag

站長(zhǎng)「蝙蝠俠」:QQ1251270088  瀏覽:1372次 時(shí)間:2015-11-16

一、Apache


Apache根據(jù)配置文件中的配置來(lái)設(shè)置Etag值,默認(rèn)的Apache的FileEtag設(shè)置為:
       FileEtagINode Mtime Size
       也就是根據(jù)這三個(gè)屬性來(lái)生成Etag值,他們之間通過(guò)一些算法來(lái)實(shí)現(xiàn),并輸出成hex的格式,相鄰屬性之間用-分隔,比如:"2e681a-6-5d044840",這里面的三個(gè)段,分別代表了INode,MTime,Size根據(jù)算法算出的值的Hex格式,可以改變Apache的FileEtag設(shè)置,比如設(shè)置成FileEtagSize,那么得到的Etag可能為:"6",設(shè)置了幾個(gè)段,Etag值就有幾個(gè)段。

 詳細(xì)配置:

步驟1
       在要啟用ETag的目錄下增加.htaccess文件并在其中增加一行,如圖:FileETagMTime Size

以覆蓋默認(rèn)的Innode MTime Size的ETag,因?yàn)槟J(rèn)的ETag使用到的Innode會(huì)導(dǎo)致相同的文件在分布式服務(wù)器上產(chǎn)生的ETag不同。

步驟2
       如果.htacces文件已經(jīng)存在,請(qǐng)確保要啟用ETag的目錄/.htacces文件中沒(méi)有FileETagNone。如果存在FileETag None,請(qǐng)刪去該行。

檢查沒(méi)有用mod_headers將ETag除去,即httpd.conf文件中沒(méi)有出現(xiàn)下面的語(yǔ)句,
       LoadModuleheaders_module modules/mod_headers.so 
       Headerunset ETag
如果出現(xiàn)如圖情況,請(qǐng)刪除Headerunset ETag這一行。

步驟3      重新啟動(dòng)httpd,就啟用ETag了。

二、Nginx


步驟1
       確認(rèn)Nginx版本,命令:Nginx安裝目錄/sbin/nginx–v,

版本為1.7.3及更高,繼續(xù)步驟2;版本為1.7.3以下,1.3.3及以上,進(jìn)行步驟3;版本為1.3.3以下,不支持ETag,請(qǐng)升級(jí)您的Nginx

步驟2
       確認(rèn)沒(méi)有關(guān)閉ETag:打開(kāi)Nginx的配置文件nginx.conf(默認(rèn)位置Nginx安裝目錄/conf/),確保其中沒(méi)有出現(xiàn)etagoff;,下圖為出現(xiàn)的情況,請(qǐng)將此行刪除。

確認(rèn)沒(méi)有使用ngx_headers_more清除ETag頭:同樣在配置文件中不能出現(xiàn)如下語(yǔ)句的任意一句,如果出現(xiàn)請(qǐng)將其刪除。


重新啟動(dòng)Nginx,就啟用ETag功能了。

步驟3

查看是否開(kāi)啟了gzip,且是否和etag出現(xiàn)沖突,出現(xiàn)沖突去步驟4,沒(méi)有去步驟2。
打開(kāi)Nginx的配置文件nginx.conf(默認(rèn)位置Nginx安裝目錄/conf/),其中出現(xiàn)gzip on;語(yǔ)句證明開(kāi)啟了gzip,如圖

開(kāi)啟gzip時(shí),可能與etag出現(xiàn)沖突,用瀏覽器多次請(qǐng)求此網(wǎng)站的靜態(tài)元素,如果只返回200,不返回304,證明存在沖突,請(qǐng)去步驟4;沒(méi)有沖突去步驟2。

步驟4
        請(qǐng)關(guān)閉gzip,即將上一步中的gzipon;改為gzip off;然后去步驟2。

若不想關(guān)閉gzip,并要開(kāi)啟ETag,同時(shí)仍要堅(jiān)持使用當(dāng)前的Nginx版本,只能修改源碼并重新編譯。
下載此版本安裝包并解壓,將其目錄下/src/http/modules/ngx_http_gzip_filter_module.c
文件中約309行左右的ngx_http_clear_etag(r);一行注釋掉或刪掉。如下圖

如果沒(méi)有找到ngx_http_clear_etag(r);而是發(fā)現(xiàn)ngx_http_weak_etag(r);如下圖,證明此Nginx

沒(méi)有gzipetag沖突的問(wèn)題,不必進(jìn)行任何修改。
重新編譯源碼安裝Nginx,解決這個(gè)沖突,然后去步驟2。

三、IIS


IIS7是默認(rèn)開(kāi)啟ETag的,如果沒(méi)有ETag,請(qǐng)按以下步驟設(shè)置。

打開(kāi)Internet Information Services (IIS) Manager,如圖雙擊HTTP響應(yīng)頭部(HTTPResponse Headers),
  選擇No Grouping標(biāo)簽,在空白處右鍵選擇Add

 設(shè)置NameETag,Value為雙引號(hào)

配置web.config:-

<system.webServer>

  ...

       <httpProtocol>

           <customHeaders>

                <add name="ETag"value="&quot;&quot;" />

           </customHeaders>

       </httpProtocol>

  ...

</system.webServer>

完成。



本文地址:http://www.quema.com.cn/artinfo/2325.html
?