Nginx SPDY Pagespeed模塊編譯——加速網站載入
在看《Web性能權威指南》的時候,看到了SPDY這貨,于是便開始折騰起了這個了,也順便把pagespeed加了進去。
Nginx SPDY
引自百科~~
SPDY(讀作“SPeeDY”)是Google開發的基于TCP的應用層協議,用以最小化網絡延遲,提升網絡速度,優化用戶的網絡使用體驗。 SPDY并不是一種用于替代HTTP的協議,而是對HTTP協議的增強。新協議的功能包括數據流的多路復用、請求優先級以及HTTP報頭壓縮。谷歌表示, 引入SPDY協議后,在實驗室測試中頁面加載速度比原先快64%。
</blockquote>在新版本的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。
</blockquote>編譯的時候看到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/
</li> </ol>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.gzcd nginx-${NGINX_VERSION}/ ./configure --add-module=$HOME/ngx_pagespeed-release-${NPS_VERSION}-beta makesudo 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</span>; pagespeed Statistics on</span>; pagespeed StatisticsLogging on</span>; 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</span>; pagespeed RespectVary on</span>; pagespeed XHeaderValue "Powered By Phodal";
server { listen 443 ssl spdy; server_name www.phodal.com; ssl on</span>; location / {
}
}</code></pre> 來自:http://www.phodal.com/blog/use-spdy-pagespeed-module-with-nginx-speed-website/