爲nginx配置ngx_pagespeed優化訪問速度

ngx_pagespeed`是可以對網頁進行加速,壓縮圖片、壓縮合並CSS和JS,對網頁加速效果明顯。 
本教程環境是運維筆記的oneinstack 
系統爲:CentOS Linux release 7.0.1406 (Core) 
下面開始教程,其中有一些網絡上安裝ngx_pagespeed的坑,我會一一說明
首先進入源碼目錄
  1. cd /root/oneinstack/src
下載 ngx_pagespeed模塊

  1. wget https://github.com/pagespeed/ngx_pagespeed/archive/latest-beta.tar.gz
進行解壓
  1. tar xzf latest-beta.tar.gzcd ngx_pagespeed-latest-beta/
這個地方需要下載一個google的擴展庫
在這我們先不進行下載,這地方有個坑,要下載pagespeed指定的版本的psol版本。 
特別說明一下,psol的版本要根據ngx_pagespeed的要求來下載。
如何查看要求的版本,我們先不附加psol庫來進行編譯
  1. cd ..或是cd /root/oneinstack/src
查看一下己裝的nginx的版本
  1. nginx -V
顯示如下:
  1. nginx version: nginx/1.10.3
  2. built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
  3. built with OpenSSL 1.0.2k  26 Jan 2017
  4. TLS SNI support enabled
  5. configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc
可以看到nginx的版本是1.10.3
解壓nginx
  1. tar xzf nginx-1.10.3.tar.gz
進入 nginx目錄
  1. cd nginx-1.10.3
上面的nginx -V的時候可以查看到之前安裝nginx的編譯信息,現在主要在末尾添加下面這段
  1. --add-module=../ngx_pagespeed-latest-beta
例如這樣的:
  1. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_pagespeed-latest-beta
切記上面的不能盲目複製,一定要根據自己的nginx -V後的編譯信息進行。
然後看到編譯不通過的信息,如下
 
要求安裝psol擴展,切記網絡上有些教程是早期的教程,可能導致下載到的psol是早期版本,編譯不能通過。
我們按照要求下載psol
  1. wget [url]https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz[/url]
解壓到ngx_pagespeed-latest-beta/目錄
  1. tar xzf 1.12.34.2-x64.tar.gz -C /root/oneinstack/src/ngx_pagespeed-latest-beta/
現在,再進行編譯
  1. ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2k --with-pcre=../pcre-8.39 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_pagespeed-latest-beta
OK。configure通過
下面進行編譯
  1. make
這個地方不需要make install
備份舊的nginx
  1. mv /usr/local/nginx/sbin/nginx{,_date +%F`}
複製新的nginx(不可退出nginx-1.10.3目錄)
  1. cp objs/nginx /usr/local/nginx/sbin
查看ngx_pagespeed安裝情況
  1. nginx -V 2>&1 | grep -o ngx_pagespeed
顯示ngx_pagespeed表示已經安裝成功。
 
 
下面是配置
將下面複製重命名爲pagespeed.conf放到你的虛擬配置文件下
  1. server {
  2. # on 啓用,off 關閉
  3. pagespeed on;
  4. # memcached優化,如果沒有memcached優化請刪去
  5. pagespeed MemcachedThreads 1;
  6. pagespeed MemcachedServers "localhost:11211";
  7. # 重置 http Vary 頭
  8. pagespeed RespectVary on;
  9. # html字符轉小寫
  10. pagespeed LowercaseHtmlNames on;
  11. # 壓縮帶 Cache-Control: no-transform 標記的資源
  12. #pagespeed DisableRewriteOnNoTransform off;
  13. # 相對URL
  14. #pagespeed PreserveUrlRelativity on;
  15. pagespeed XHeaderValue "Powered By JaxsonWang";

  16. # 開啓 https
  17. #pagespeed FetchHttps enable;

  18. # 配置服務器緩存位置和自動清除觸發條件(空間大小、時限)
  19. pagespeed FileCachePath "/var/ngx_pagespeed/";
  20. pagespeed FileCacheSizeKb 2048000;
  21. pagespeed FileCacheCleanIntervalMs 43200000;
  22. pagespeed FileCacheInodeLimit 500000;
  23. # 過濾規則
  24. pagespeed RewriteLevel PassThrough;
  25. # 過濾WordPress的/wp-admin/目錄(可選配置,可參考使用)
  26. pagespeed Disallow "*/wp-admin/*";
  27. pagespeed Disallow "*/wp-login.php*";
  28. # 過濾typecho的/admin/目錄(可選配置,可參考使用)
  29. pagespeed Disallow "*/admin/*";

  30. # 移除不必要的url前綴,開啓可能會導致某些自動加載功能失效
  31. #pagespeed EnableFilters trim_urls;
  32. # 移除 html 空白
  33. pagespeed EnableFilters collapse_whitespace;
  34. # 移除 html 註釋
  35. pagespeed EnableFilters remove_comments;
  36. # DNS 預加載
  37. pagespeed EnableFilters insert_dns_prefetch;
  38. # 壓縮CSS
  39. pagespeed EnableFilters rewrite_css;
  40. # 合併CSS
  41. pagespeed EnableFilters combine_css;
  42. # 重寫CSS,優化加載渲染頁面的CSS規則
  43. pagespeed EnableFilters prioritize_critical_css;
  44. # google字體直接寫入html 目的是減少瀏覽器請求和DNS查詢
  45. pagespeed EnableFilters inline_google_font_css;
  46. # 壓縮js
  47. pagespeed EnableFilters rewrite_javascript;
  48. # 合併js
  49. pagespeed EnableFilters combine_javascript;
  50. # 優化內嵌樣式屬性
  51. #pagespeed EnableFilters rewrite_style_attributes;
  52. # 壓縮圖片
  53. #pagespeed EnableFilters rewrite_images;
  54. # 不加載顯示區域以外的圖片
  55. pagespeed LazyloadImagesAfterOnload off;
  56. # 圖片預加載
  57. pagespeed EnableFilters inline_preview_images;
  58. # 移動端圖片自適應重置
  59. pagespeed EnableFilters resize_mobile_images;
  60. # 圖片延遲加載
  61. pagespeed EnableFilters lazyload_images;
  62. # 雪碧圖片,圖標很多的時候很有用
  63. #pagespeed EnableFilters sprite_images;
  64. # 擴展緩存 改善頁面資源的可緩存性
  65. pagespeed EnableFilters extend_cache;

  66. # 不能刪
  67. location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
  68. location ~ "^/ngx_pagespeed_static/" { }
  69. location ~ "^/ngx_pagespeed_beacon[        DISCUZ_CODE_17        ]quot; { }
  70. location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
  71. location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
  72. }
最後重啓nginx
  1. service nginx restart
 原文:https://bbs.aliyun.com/read/310968.html?spm=0.0.0.0.4Kbyet
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章