為OpenResty增加ngx_pagespeed模塊進行優化


1、下載ngx_pagespeed模塊

wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.4-beta.zip
unzip v1.8.31.4-beta.zip
cd ngx_pagespeed-1.8.31.4-beta/
wget https://dl.google.com/dl/page-speed/psol/1.8.31.4.tar.gz
tar -xzvf 1.8.31.4.tar.gz

2、重新編譯OpenResty

./configure --prefix=/usr/local/openresty/ --with-http_stub_status_module --add-module=/usr/local/software/ngx_pagespeed-1.8.31.4-beta/ --with-luajit
make
mv /usr/local/openresty/nginx/sbin/nginx /usr/local/openresty/nginx/sbin/nginx.old
cp /usr/local/software/ngx_openresty-1.7.0.1/build/nginx-1.7.0/objs/nginx /usr/local/openresty/nginx/sbin/
service nginx restart
/usr/local/openresty/nginx/sbin/nginx -V

3、配置pagespeed

對新手用戶而言:使用CoreFilters
CoreFilters含有一系列PageSpeed過濾器,谷歌認為這些過濾器對大多數網站來說是安全的。如果啟用CoreFilters,你就自動啟用了一系列"安全"規則。所以,推薦新手用戶采用這種方法。如果你願意,也可以禁用CoreFilters中的某個或某些過濾器,或者選擇性地啟用額外的過濾器。下面這個例子表明了使用CoreFilters的ngx_pagespeed配置。

server { 
# 偵聽的端口 
listen 80; 
# 服務器名稱 
server_name xmodulo.com www.xmodulo.com; 
# 記下根目錄 
root /usr/local/nginx/html; 
# 訪問日志 
access_log /var/log/nginx/access.log main; 
# 啟用ngx_pagespeed 
pagespeed on; 
pagespeed FileCachePath /var/ngx_pagespeed_cache; 
# 啟用CoreFilters 
pagespeed RewriteLevel CoreFilters; 
# 禁用CoreFilters中的某些過濾器 
pagespeed DisableFilters rewrite_images; 
# 選擇性地啟用額外的過濾器 
pagespeed EnableFilters collapse_whitespace; 
pagespeed EnableFilters lazyload_images; 
pagespeed EnableFilters insert_dns_prefetch; 
} 

對高級用戶而言:使用PassThrough
如果是高級用戶,你可以使用PageThrough級別,你可以手動啟用個別過濾器。

server { 
# 偵聽的端口 
listen 80; 
# 服務器名稱 
server_name xmodulo.com www.xmodulo.com; 
# 記下根目錄 
root /usr/local/nginx/html; 
# 訪問日志 
access_log /var/log/nginx/access.log main; 
# 啟用ngx_pagespeed 
pagespeed on; 
pagespeed FileCachePath /var/ngx_pagespeed_cache; 
# 禁用CoreFilters 
pagespeed RewriteLevel PassThrough; 
# 啟用壓縮空白過濾器 
pagespeed EnableFilters collapse_whitespace; 
# 啟用JavaScript庫卸載 
pagespeed EnableFilters canonicalize_javascript_libraries; 
# 把多個CSS文件合並成一個CSS文件 
pagespeed EnableFilters combine_css; 
# 把多個JavaScript文件合並成一個JavaScript文件 
pagespeed EnableFilters combine_javascript; 
# 刪除帶默認屬性的標簽 
pagespeed EnableFilters elide_attributes; 
# 改善資源的可緩存性 
pagespeed EnableFilters extend_cache; 
# 更換被導入文件的@import,精簡CSS文件 
pagespeed EnableFilters flatten_css_imports; 
pagespeed CssFlattenMaxBytes 5120; 
# 延時加載客戶端看不見的圖片 
pagespeed EnableFilters lazyload_images; 
# 啟用JavaScript縮小機制 
pagespeed EnableFilters rewrite_javascript; 
# 啟用圖片優化機制 
pagespeed EnableFilters rewrite_images; 
# 預解析DNS查詢 
pagespeed EnableFilters insert_dns_prefetch; 
# 重寫CSS,首先加載渲染頁面的CSS規則 
pagespeed EnableFilters prioritize_critical_css; 
} 

4、修改緩存目錄的主屬(我的OpenResty是用nobody用戶)

chown nobody:nobody /var/ngx_pagespeed_cache

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM