如何在 Ubuntu/Debian 中构建 nginx 1.4.0 和 ngx_pagespeed?

PeP*_*ePe 6 ubuntu nginx page-speed mod-pagespeed ubuntu-12.04

如何在 Ubuntu 中构建 nginx 1.4.0 和 ngx_pagespeed

创建一个目录来下载必要的包(可选):

mkdir pagespeed && cd pagespeed
Run Code Online (Sandbox Code Playgroud)

确保你有最新版本的 nginx,我建议使用 nginx repo。

添加 nginx 仓库:

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
Run Code Online (Sandbox Code Playgroud)

将此行添加到 /etc/apt/sources.list 文件:

deb http://nginx.org/packages/debian/ codename nginx (for 12.04 codename is squeeze)
deb-src http://nginx.org/packages/debian/ codename nginx
Run Code Online (Sandbox Code Playgroud)

下载 nginx 源代码并构建软件包:

sudo apt-get update
sudo apt-get install dpkg-dev
sudo apt-get source nginx
Run Code Online (Sandbox Code Playgroud)

构建 nginx deps :

sudo apt-get build-dep nginx
Run Code Online (Sandbox Code Playgroud)

确保你有这个 ngx_pagespeed 要求:

sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev
Run Code Online (Sandbox Code Playgroud)

克隆 ngx_pagespeed git repo :

git clone https://github.com/pagespeed/ngx_pagespeed.git
Run Code Online (Sandbox Code Playgroud)

编辑 nginx 1.4 包的构建规则:

vim nginx-1.4.0/debian/rules
Run Code Online (Sandbox Code Playgroud)

并添加:

--add-module=../ngx_pagespeed \
Run Code Online (Sandbox Code Playgroud)

它看起来像这样:

...
--with-file-aio \
--add-module=../ngx_pagespeed \
$(WITH_SPDY) \
--with-ipv6
...
Run Code Online (Sandbox Code Playgroud)

使用 pagespeed 模块构建 nginx 1.4.0 debian 包:

cd nginx-1.4.0/ && dpkg-buildpackage -b
Run Code Online (Sandbox Code Playgroud)

安装新的 nginx deb 包:

cd .. && dpkg --install nginx_1.4.0-1~squeeze_amd64.deb
Run Code Online (Sandbox Code Playgroud)

If you have nginx installed you will need to remove it and then reinstall the new package ( do not use --purge options otherwise you will delete all your config files)

将此行添加到 /etc/nginx.conf 以测试 pagespeed 是否有效:

...
http {
    pagespeed on;
    pagespeed FileCachePath /var/ngx_pagespeed_cache;
...
Run Code Online (Sandbox Code Playgroud)

创建 pagespeed 缓存目录并更改权限:

mkdir /var/ngx_pagespeed_cache
chown -R www-data:www-data /var/ngx_pagespeed_cache
Run Code Online (Sandbox Code Playgroud)

重新加载nginx:

nginx -s reload
Run Code Online (Sandbox Code Playgroud)

测试 pagespeed 是否正常工作:

curl -I -p http://localhost:8080/index.php|grep X-Page-Speed 
Run Code Online (Sandbox Code Playgroud)

确保使用正确的网址

你应该看到:

X-Page-Speed: 1.5.27.1-2845
Run Code Online (Sandbox Code Playgroud)

如果你看到那个标题,你就大功告成了!!!

现在你需要RT?M!!

有关更多详细信息,请阅读:

https://github.com/pagespeed/ngx_pagespeed

http://nginx.org/en/linux_packages.html#stable

欢迎对此说明提供任何反馈

这个过程基本上可以用于为 nginx 构建任何不在 nginx-full 或默认 dedian 包上的模块