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