Nginx (engine-x)是一個開源的高性能 HTTP 服務器、反向代理和 IMAP/POP3 代理服務器。nginx 傑出的功能有:穩定、豐富的功能集、簡單的配置和低資源消耗。nginx 被用於一些高性能網站並在站長之間變得越來越流行。本教程會從源碼構建一個帶有 google paespeed 模塊的用於 Ubuntu 15.04 的 nginx .deb 安裝包。
pagespeed 是一個由 google 開發的 web 服務器模塊來加速網站響應時間、優化 html 和減少頁面加載時間。ngx_pagespeed 的功能如下:
圖像優化:去除元數據、動態縮放、重壓縮。
CSS 與 JavaScript 壓縮、串聯、內聯、外聯。
小資源內聯
圖像與 JavaScript 延遲加載
HTML 重寫
緩存生命期插件
前置要求
Ubuntu Server 15.04 64位
root 權限
本篇我們將要:
安裝必備軟件包
安裝帶 ngx_pagespeed 的 nginx
測試
安裝必備包
代碼如下:
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev
安裝帶 ngx_pagespeed 的 nginx
第一步 - 添加nginx倉庫
代碼如下:
vim /etc/apt/sources.list.d/nginx.list
加入下面的行:
代碼如下:
deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx
更新倉庫:
代碼如下:
sudo apt-get update
注意:如果你看到信息:GPG error [...] NO_PUBKEY [...] 等等
請添加key:
代碼如下:
sudo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYNUMBER
sudo apt-get update
第二步 - 從倉庫下載 nginx 1.8
代碼如下:
sudo su
cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/
apt-get source nginx
apt-get build-dep nginx
第三步 - 下載 Pagespeed
代碼如下:
cd ~
mkdir -p ~/new/ngx_pagespeed/
cd ~/new/ngx_pagespeed/
ngx_version=1.9.32.3
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${ngx_version}-beta.zip
unzip release-${ngx_version}-beta.zip
cd ngx_pagespeed-release-1.9.32.3-beta/
wget https://dl.google.com/dl/page-speed/psol/${ngx_version}.tar.gz
tar -xzf 1.9.32.3.tar.gz
第四步 - 配置 nginx 來編譯 Pagespeed
代碼如下:
cd ~/new/nginx_source/nginx-1.8.0/debin/
vim rules
在兩處 CFLAGS .configure 下添加模塊:
--add-module=../../ngx_pagespeed/ngx_pagespeed-release-1.9.32.3-beta \
adding pagespeed to nginx
adding pagespeed to nginx
第五步 - 打包 nginx 軟件包並安裝
代碼如下:
cd ~/new/nginx_source/nginx-1.8.0/
dpkg-buildpackage -b
dpkg-buildpackage 會編譯 ~/new/ngix_source/ 為 nginx.deb。打包完成後,看一下目錄:
代碼如下:
cd ~/new/ngix_source/
ls
nginx builded with pagespeed
接著安裝 nginx。
代碼如下:
dpkg -i nginx_1.8.0-1~trusty_amd64.deb
測試
運行 nginx -V 測試 nginx 是否已經自帶 ngx_pagespeed。
代碼如下:
nginx -V
總結
穩定、快速、開源的 nginx 支持許多不同的優化模塊。這其中之一是 google 開發的‘pagespeed’。不像 apache,nginx 模塊不是動態加載的,因此你必須在編譯之前就選擇好需要的模塊。