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中簡(jiǎn)單的安裝方法如下。安裝完成之后,它會(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、延長(zhǎng)資源的過期時(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)然,禁用它也很簡(jiǎn)單,甚至連SSH都用不上。只需要在需要調(diào)試的URL后面加上參數(shù)ModPagespeed=off,比如這樣:
就可以訪問到?jīng)]有經(jīng)過Page Speed優(yōu)化過的網(wǎng)頁,如果你仔細(xì)看源文件,可以發(fā)現(xiàn)一些差別。
相關(guān)文章
Linux系統(tǒng)配置靜態(tài)IP地址的詳細(xì)步驟
在安裝Linux后,系統(tǒng)的網(wǎng)絡(luò)IP地址默認(rèn)是自動(dòng)分配的,這將導(dǎo)致每次啟動(dòng)Linux系統(tǒng)后,系統(tǒng)的IP地址都會(huì)發(fā)生改變,此文以CentOS7系統(tǒng)環(huán)境為例,詳細(xì)介紹如何配置Linux系統(tǒng)的靜態(tài)IP地址,需要的朋友可以參考下2024-04-04
總結(jié)Centos7系統(tǒng)加固知識(shí)點(diǎn)
本篇文章給大家詳細(xì)介紹了LINUX中Centos7系統(tǒng)加固的相關(guān)知識(shí)點(diǎn),如果大家對(duì)此有需要跟著學(xué)習(xí)下吧。2018-02-02
crontab定時(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
淺談三種配置linux環(huán)境變量的方法(以java為例)
下面小編就為大家?guī)硪黄獪\談三種配置linux環(huán)境變量的方法(以java為例)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
linux共享上網(wǎng)設(shè)置實(shí)例詳解
這篇文章主要介紹了linux共享上網(wǎng)設(shè)置實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05
Ubuntu系統(tǒng)查看進(jìn)程被kill的命令和方法
這篇文章主要介紹了Ubuntu查看進(jìn)程被kill的幾種方式,在Ubuntu系統(tǒng)中,要查看進(jìn)程被殺掉的記錄,可以使用文中命令和方法,文章通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-05-05
Linux安裝redis后沒有redis-server的問題
這篇文章主要介紹了Linux安裝redis后沒有redis-server的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Linux 全能系統(tǒng)監(jiān)控工具dstat的實(shí)例詳解
這篇文章主要介紹了Linux 全能系統(tǒng)監(jiān)控工具dstat的實(shí)例詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09

