Apache加速模塊mod_pagespeed安裝使用詳細(xì)介紹
一.mod_pagespeed介紹
mod_pagespeed是一個(gè)適用于apache httpd的模塊,由google發(fā)布的開源代碼,可以自動(dòng)完成優(yōu)化工作,包括優(yōu)化緩存,減少客戶端服務(wù)器之間的通訊,降低負(fù)載等等。部署mod_pagespeed不用修改任何程序,安裝完成后重啟apache,一切前端問題自動(dòng)優(yōu)化。CDN服務(wù)商Cotendo已在其CDN服務(wù)器上部署mod_pagespeed以加速客戶網(wǎng)站訪問,圖片文件大小經(jīng)自動(dòng)壓縮可減少20%-30%,頁面加載時(shí)間最多可縮短50%。GoDaddy也宣布將在其客戶網(wǎng)站服務(wù)器上廣泛部署mod_pagespeed。
mod_pagespeed項(xiàng)目主頁:https://developers.google.com/speed/pagespeed/
二、mod_pagespeed的功能
1.Optimize Caching優(yōu)化緩存
Extend Cache擴(kuò)展緩存
Outline CSS
Outline JavaScript
2.Minimize Round Trip Times最大限度地減少往返時(shí)間
Combine CSS 合并CSS
Inline CSS 內(nèi)嵌CSS
Inline JavaScript 內(nèi)嵌JavaScript
3.Minimize Payload Size最小化有效載荷尺寸
Collapse Whitespace 壓縮空白
Combine Heads 合并頭信息
Elide Attributes 省略屬性
Minify Javascript 縮小Javascript
Optimize Images 優(yōu)化圖片
Remove Comments 刪除注釋
Remove Quotes 刪除引用
Rewrite CSS 重寫CSS
Move CSS to HEAD 加載CSS到head
Add Head
Add Instrumentation
三、mod_pagespeed的基本原理
mod_pagespeed是通過修改被請(qǐng)求的網(wǎng)頁上資源來改善網(wǎng)頁延遲和帶寬使用效率的。Apache HTTP Server在服務(wù)網(wǎng)站資源時(shí),mod_pagespeed module中的每種優(yōu)化措施都被放到了可自定義的過濾器中。有些過濾器會(huì)直接的修改HTML內(nèi)容,而另外一些過濾器會(huì)調(diào)整頁面中引用的CSS,JavaScript和圖片,從而構(gòu)造出一種更優(yōu)化的頁面。
四、mod_pagespeed的安裝
mod_pagespeed目前支持Apache和Nginx。Apache中簡單的安裝方法如下。安裝完成之后,它會(huì)在yum里新建一個(gè)安裝源,之后通過yum update更新就可以了。
Centos/Fedora下安裝:
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm
#64位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
yum install at
rpm -U mod-pagespeed-*.rpm
Debina/Ubuntu下安裝:
#32位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
#64位
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.deb
dpkg -i mod-pagespeed-*.deb
重啟httpd:
查看pagespeed是否加載:
五、mod_pagespeed的配置
一般在安裝成功后,不需要任何配置就可以正常用,當(dāng)然,如果你有更高的要求,可以參考以下內(nèi)容。
1.創(chuàng)建配置文件
LoadModule pagespeed_module /usr/local/apache/modules/mod_pagespeed_ap24.so
<IfModule pagespeed_module>
ModPagespeed on
ModPagespeedInheritVHostConfig on
AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"
ModPagespeedFileCacheInodeLimit 500000
ModPagespeedAvoidRenamingIntrospectiveJavascript on
ModPagespeedEnableFilters collapse_whitespace
<Location /mod_pagespeed_beacon>
SetHandler mod_pagespeed_beacon
</Location>
<Location /mod_pagespeed_statistics>
Order allow,deny
Allow from localhost
Allow from 127.0.0.1
SetHandler mod_pagespeed_statistics
</Location>
ModPagespeedMessageBufferSize 100000
<Location /mod_pagespeed_message>
Allow from localhost
Allow from 127.0.0.1
SetHandler mod_pagespeed_message
</Location>
</IfModule>
2.使用配置文件
mkdir -p /var/mod_pagespeed/ #創(chuàng)建配置文件中配置的緩存目錄
chown -R www.www /var/mod_pagespeed/
echo 'Include conf/pagespeed.conf' >> /usr/local/apache/conf/httpd.conf
/usr/local/apache/bin/apachectl -t #測(cè)試配置文件
Syntax OK
service httpd restart #重啟apache
六、mod_pagespeed的高級(jí)應(yīng)用
mod_pagespeed中有一系列的默認(rèn)的優(yōu)化選項(xiàng)(filter),在安裝完成之后自動(dòng)打開,只需要重啟一下Apache就可以看到效果了。
基礎(chǔ)的優(yōu)化都已包含了,比如壓縮CSS和Javascript、延長資源的過期時(shí)間、重寫圖片等,如果還想進(jìn)一步優(yōu)化,可以考慮幾下選項(xiàng):
1.remove_comments:刪除源文件中的注釋。絕大多數(shù)情況下,注釋對(duì)于終端用戶都是不可見的,刪掉之后不影響瀏覽。而且mod_pagespeed可以識(shí)別出IE的條件注釋而不去動(dòng)它。
2.collapse_whitespace:刪除源文件中的空白字符,同上,不影響瀏覽。
3.insert_dns_prefetch:指引瀏覽器提前進(jìn)行DNS解析,如果你的博客中引用了其它站點(diǎn)的圖片,比如本博客使用Google Cloud Storage作為圖床,增加這個(gè)選項(xiàng),可以讓瀏覽器預(yù)先解析Cloud Storage的DNS,這樣可以加速圖片的下載速度。
增加選項(xiàng)需要修改/etc/httpd/conf.d/pagespeed.conf文件,并添加如下的代碼。注意修改完之后依然需要重啟Apache。
另外,如果你的網(wǎng)站啟用了HTTPS,你需要對(duì)HTTPS進(jìn)行特殊的設(shè)置,因?yàn)镠TTPS中通訊是加密的,mod_pagespeed無法得知其中的內(nèi)容。設(shè)置也就一句話:
都搞定之后,刷新一下頁面看看效果吧。
七、臨時(shí)禁用PageSpeed組件
在調(diào)試網(wǎng)站的時(shí)候,有時(shí)候需要禁用緩存組件,這樣才可以看到最新的改動(dòng)。這個(gè)時(shí)候Page Speed組件可能會(huì)變成一個(gè)障礙,它并不能及時(shí)地發(fā)現(xiàn)原始文件有所改變,從而重新進(jìn)行緩存。
當(dāng)然,禁用它也很簡單,甚至連SSH都用不上。只需要在需要調(diào)試的URL后面加上參數(shù)ModPagespeed=off,比如這樣:
就可以訪問到?jīng)]有經(jīng)過Page Speed優(yōu)化過的網(wǎng)頁,如果你仔細(xì)看源文件,可以發(fā)現(xiàn)一些差別。
相關(guān)文章
在Apache服務(wù)器中運(yùn)行CGI程序的方法
這篇文章主要介紹了在Apache服務(wù)器中運(yùn)行CGI程序的方法,文中以Perl腳本作為示例,需要的朋友可以參考下2015-07-07time_t tm timeval 和 時(shí)間字符串的轉(zhuǎn)換方法
下面小編就為大家?guī)硪黄猼ime_t tm timeval 和 時(shí)間字符串的轉(zhuǎn)換方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01yum 安裝memcache permission denied(拒絕訪問) 問題
這篇文章主要介紹了yum 安裝memcache permission denied(拒絕訪問) 問題,需要的朋友可以參考下2017-03-03crontab定時(shí)任務(wù)不執(zhí)行的一些原因總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于crontab定時(shí)任務(wù)不執(zhí)行的一些原因,對(duì)每種可能發(fā)生的原因都給出了解決方法,對(duì)遇到這個(gè)問題的朋友們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01解讀crontab腳本錯(cuò)誤日志和正確的輸出寫入到文件
這篇文章主要介紹了解讀crontab腳本錯(cuò)誤日志和正確的輸出寫入到文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04linux使用QQ實(shí)現(xiàn)網(wǎng)絡(luò)郵件報(bào)警功能
這篇文章主要介紹了linux使用QQ實(shí)現(xiàn)網(wǎng)絡(luò)郵件報(bào)警功能,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08