Nginx SPDY Pagespeed模組編譯——加速網站載入

edithfang發表於2014-09-05
在看《Web效能權威指南》的時候,看到了SPDY這貨,於是便開始折騰起了這個了,也順便把pagespeed加了進去。
Nginx SPDY
引自百科~~
 SPDY(讀作“SPeeDY”)是Google開發的基於TCP的應用層協議,用以最小化網路延遲,提升網路速度,優化使用者的網路使用體驗。SPDY並不是一種用於替代HTTP的協議,而是對HTTP協議的增強。新協議的功能包括資料流的多路複用、請求優先順序以及HTTP報頭壓縮。谷歌表示,引入SPDY協議後,在實驗室測試中頁面載入速度比原先快64%。
在新版本的Nginx中預設是不開啟SPDY的,所以我們需要重新編譯我們的nginx。
編譯Nginx
1.下載這個軟體的原始碼包
wget http://nginx.org/download/nginx-1.7.4.tar.gz
2.解壓軟體包
tar -vf nginx-1.7.4.tar.gz
3.到nginx目錄下
cd nginx-1.7.4
4.配置nginx

一次簡單的配置如下
./configure --with-http_spdy_module --with-http_ssl_module
當你熟練以後,你可能和我一樣用下面的配置(注意:用下面的程式碼會出錯。)
./configure --user=www --group=www --prefix=/usr/local/nginx --with-pcre --with-http_spdy_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-ipv6
過程中可能會提示你其中出了多少錯誤,而這時你便可以很愉快地去用搜尋引擎搜尋他們。

5.make

這裡就會用到GCC等等。
make
6.執行

如果執行順利的話,應該可以直接
./objs/nginx
Nginx Pagespeed
 mod_pagespeed於2010年釋出,讓網站管理員可以為其Web應用提速,而不需要深度的效能優化造詣。mod_pagespeed最初版本只作為Apache的模組,並不相容Nginx這個最流行併為許多大型站點所使用的高效能開源網路伺服器。如今Nginx的PageSpeed Beta版終於釋出,又名ngx_pagespeed。
編譯的時候看到Pagespeed也更新了,於是順便更新了Nginx Pagespeed模組。編譯的時候發現裡面的config檔案有一部分是錯的,於是便建了個pull request,只是Google的PR好麻煩,還要CLA。

先奉上指令碼:
./configure --user=www --group=www --add-module=../ngx_pagespeed-1.8.3.4-beta --prefix=/usr/local/nginx --with-pcre --with-http_spdy_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-ipv6
Nginx Pagespeed編譯
Google給出了一個指令碼
  • 下載ngx_pagespeed
    cd NPS_VERSION=1.8.31.4 wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip unzip release-${NPS_VERSION}-beta.zip cd ngx_pagespeed-release-${NPS_VERSION}-beta/ wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz tar -xzvf ${NPS_VERSION}.tar.gz # extracts to psol/
     2.編譯nginx
cd # check http://nginx.org/en/download.html for the latest version NGINX_VERSION=1.6.0 wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz cd nginx-${NGINX_VERSION}/
./configure --add-module=$HOME/ngx_pagespeed-release-${NPS_VERSION}-beta
make sudo make install
Nginx pagespeed配置
配置過程可以參考這篇文件https://developers.google.com/speed/pagespeed/module/configuration
配置SPDY NGX_PAGESPEED
一個簡單的SPDY配置如下
server { ... ... listen 10.1.2.3:443 ssl spdy;
        server_name  yoursite.com; ... ... ... }
SPDY需要HTTPS,HTTPS需要證照。

我的配置大致如下所示 http {
pagespeed on;
  pagespeed Statistics on;
  pagespeed StatisticsLogging on;
  pagespeed FileCachePath /home/ngx_pagespeed_cache; # Use tmpfs for best results. pagespeed EnableFilters combine_css,combine_javascript,canonicalize_javascript_libraries,collapse_whitespace,convert_meta_tags,dedup_inlined_images,flatten_css_imports,inline_import_to_link,inline_css,inline_javascript,rewrite_javascript,remove_comments,rewrite_css,rewrite_images,convert_gif_to_png,recompress_png,convert_jpeg_to_progressive,strip_image_color_profile,strip_image_meta_data,insert_image_dimensions,extend_cache,move_css_to_head,sprite_images;
  pagespeed PreserveUrlRelativity on;
  pagespeed RespectVary on;
  pagespeed XHeaderValue "Powered By Phodal";

  server
  {
    listen 443 ssl spdy;
    server_name www.phodal.com;
    ssl on;
    location / {

    }
  }
相關閱讀
評論(2)

相關文章