技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

Nginx安裝配置PageSpeed模塊實(shí)現(xiàn)網(wǎng)站加速

來源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-06-16 00:10┆點(diǎn)擊:

  作為Nginx組件,ngx_pagespeed將重寫你的網(wǎng)頁,讓用戶以更快的速度進(jìn)行訪問。重寫的工作包括壓縮圖片、縮減CSS和JavaScript、擴(kuò)展緩存時(shí)間,同樣還包括其它一些最佳實(shí)踐:

  優(yōu)化緩存——整合應(yīng)用程序的數(shù)據(jù)和邏輯

  最小化round-trip次數(shù)——削減連續(xù)的請(qǐng)求/響應(yīng)周期數(shù)

  最小化請(qǐng)求開銷——削減上傳大小

  最小化負(fù)載大小——削減響應(yīng)、下載及緩存頁面大小

  優(yōu)化瀏覽器渲染——改善瀏覽器頁面布局

  移動(dòng)方面的優(yōu)化——優(yōu)化站點(diǎn)移動(dòng)網(wǎng)絡(luò)和設(shè)備方面的相關(guān)特性

  下載解壓PageSpeed模塊

  cd /root/lnmp/src

  wget https://github.com/pagespeed/ngx_pagespeed/archive/release-1.6.29.5-beta.zip

  unzip -q release-1.6.29.5-beta

  wget https://dl.google.com/dl/page-speed/psol/1.6.29.5.tar.gz

  tar xzf 1.6.29.5.tar.gz -C ngx_pagespeed-release-1.6.29.5-beta

  查看線上版本編譯參數(shù)

  # /usr/local/nginx/sbin/nginx -V

  nginx version: nginx/1.4.1

  built by gcc 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC)

  TLS SNI support enabled

  configure arguments: --prefix=http://www.3lian.com/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module

  增加ngx_pagespeed模塊重新編譯

  # wget

  # tar -xvzf nginx-1.4.2.tar.gz

  # cd nginx-1.4.2/

  # ./configure --prefix=http://www.3lian.com/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_pagespeed-release-1.6.29.5-beta/

  # make //注意只make 不要make install (如果報(bào)錯(cuò)請(qǐng)看下面)

  安裝ngx_pagespeed (make) 32位操作系統(tǒng)可能會(huì)報(bào)如下錯(cuò)誤

  ../ngx_pagespeed-release-1.6.29.5-beta/psol/lib/Release/linux/ia32/pagespeed_automatic.a(104.system.o.o): In function `cv::tempfile(char const*)':

  system.cpp:(.text._ZN2cv8tempfileEPKc+0x1e): warning: the use of `tmpnam' is dangerous, better use `mkstemp'

  objs/addon/src/ngx_base_fetch.o: In function `net_instaweb::NgxBaseFetch::DecrefAndDeleteIfUnreferenced()':

  /root/lnmp/src/nginx-1.4.2/../ngx_pagespeed-release-1.6.29.5-beta/src/ngx_base_fetch.cc:185: undefined reference to `__sync_add_and_fetch_4'

  collect2: ld returned 1 exit status

  make[1]: *** [objs/nginx] Error 1

  make[1]: Leaving directory `/root/lnmp/src/nginx-1.4.2'

  make: *** [build] Error 2

  解決方法:

  ./configure 后面加上–with-cc-opt=’-DLINUX=2 -D_REENTRANT -D_LARGEFILE64_SOURCE -march=i686 -pthread’ ,如下:

  # make clean

  # ./configure --prefix=http://www.3lian.com/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --add-module=../ngx_pagespeed-release-1.6.29.5-beta

  --with-cc-opt='-DLINUX=2 -D_REENTRANT -D_LARGEFILE64_SOURCE -march=i686 -pthread'

  # make

  # mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx$(date +%m%d) #備份nginx原文件

  # cp objs/nginx /usr/local/nginx/sbin/nginx #復(fù)制編譯make后的文件覆蓋nginx原文件

  # /usr/local/nginx/sbin/nginx -t #檢測(cè)nginx配置文件語法是否正確

  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  # kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` #把nginx.pid改成nginx.pid.oldbin跟著啟動(dòng)新的nginx

  # kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` #退出舊的nignx

  使用ngx_pagespeed

  # mkdir /var/ngx_pagespeed_cache

  # chown /var/ngx_pagespeed_cache

  # cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf$(date +%m%d) #備份nginx配置文件

  # vi /usr/local/nginx/conf/nginx.conf

  server {

  #省略

  pagespeed on;

  pagespeed FileCachePath /var/ngx_pagespeed_cache;

  pagespeed RewriteLevel CoreFilters;

  pagespeed EnableFilters local_storage_cache;

  pagespeed EnableFilters collapse_whitespace,remove_comments;

  pagespeed EnableFilters outline_css;

  pagespeed EnableFilters flatten_css_imports;

  pagespeed EnableFilters move_css_above_scripts;

  pagespeed EnableFilters move_css_to_head;

  pagespeed EnableFilters outline_javascript;

  pagespeed EnableFilters combine_javascript;

  pagespeed EnableFilters combine_css;

  pagespeed EnableFilters rewrite_javascript;

  pagespeed EnableFilters rewrite_css,sprite_images;

  pagespeed EnableFilters rewrite_style_attributes;

  pagespeed EnableFilters recompress_images;

  pagespeed EnableFilters resize_images;

  pagespeed EnableFilters convert_meta_tags;

  location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" { add_header "" ""; }

  location ~ "^/ngx_pagespeed_static/" { }

  location ~ "^/ngx_pagespeed_beacon$" { }

  location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }

  location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }

  #省略

  }

  # /usr/local/nginx/sbin/nginx -t

  Setting option from ("on")

  Setting option from ("FileCachePath", "/var/ngx_pagespeed_cache")

  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

  # service nginx restart

  Stopping nginx: [ OK ]

  Starting nginx: Setting option from ("on")

  Setting option from ("FileCachePath", "/var/ngx_pagespeed_cache") [ OK ]

  # curl -I 'http://www.linuxeye.com/' | grep X-Page-Speed

  % Total % Received % Xferd Average Speed Time Time Time Current

  Dload Upload Total Spent Left Speed

  0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0

  X-Page-Speed: 1.4.0.0-2748

  注意:

  如果discuz使用了偽靜態(tài)要注銷掉下面部分(前面加#注銷):

  #if (!-e $request_filename) {

  # return 404;

  #}

  使用后效果如下: