如何在Debian 8上使用PageSpeed编译Nginx
本教程将教您如何在Debian 8 Jessie上使用ngx_pagespeed模块编译Nginx。
1个备份Nginx配置文件
在安装过程中,您的Nginx配置文件将被覆盖。 以下命令会将配置文件复制到当前工作目录。 (不要忽略结尾的点。该点是您当前的工作目录。)
cp /etc/nginx/nginx.conf /etc/nginx/sites-available/*.conf .
2.添加Nginx存储库
从Nginx导入PGP密钥。
wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
编辑源列表文件。
sudo vi /etc/apt/sources.list
在文件末尾添加以下两行。
deb http://nginx.org/packages/mainline/debian/ jessie nginx deb-src http://nginx.org/packages/mainline/debian/ jessie nginx
保存并关闭文件。 然后更新本地包索引。
sudo apt-get update
3.下载Nginx源码包
在您的主文件夹中创建一个目录来存储Nginx源包,然后将cd转到新目录:
mkdir ~/nginx && cd ~/nginx
使用以下命令下载Nginx源码包
sudo apt-get source nginx
4.下载ngx_pagespeed源码包
转到Github ngx_pagespeed下载页面。 将最新的Beta版本下载到您的主目录。 撰写本文时为v1.9.32.10-beta。 您可能需要更改版本号。
cd ~ wget https://codeload.github.com/pagespeed/ngx_pagespeed/zip/v1.9.32.10-beta
解压缩:
sudo apt-get install unzip unzip v1.9.32.10-beta
cd到新创建的目录:
cd ngx_pagespeed-1.9.32.10-beta/
下载PageSpeed Optimization Libraries(psol)并将其解压缩。
wget https://dl.google.com/dl/page-speed/psol/1.9.32.10.tar.gz tar xvf 1.9.32.10.tar.gz
它将在ngx_pagespeed-1.9.32.10-beta目录下创建一个psol目录。
5.将ngx_pagespeed模块添加到Nginx编译规则
编辑Nginx编译规则文件。
sudo vi ~/nginx/nginx-1.9.10/debian/rules
在此文件中,您将看到两个配置块 override_dh_auto_build 和 configure_debug。 在 overlay_dh_auto_build, 在末尾添加以下行。 将
--add-module=/home/<username>/ngx_pagespeed-1.9.32.10-beta
请注意,您需要在–with-ipv6行添加反斜杠,或者 –添加模块 将被忽略。
# some text left out. --with-file-aio $(WITH_HTTP2) --with-cc-opt="$(CFLAGS)" --with-ld-opt="$(LDFLAGS)" --with-ipv6 --add-module=/home/<username>/ngx_pagespeed-1.9.32.10-beta dh_auto_build configure_debug: CFLAGS="" ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf # some text left out.
保存并关闭文件。
6.编译安装
cd到nginx源目录。
cd ~/nginx/nginx-1.9.10/
安装构建Nginx所需的所有依赖项:
sudo apt-get build-dep nginx
使用以下命令来构建deb软件包。
sudo dpkg-buildpackage -b
等待几分钟。 我的Debian服务器在5分钟左右完成了任务。 完成后,其中将有两个deb文件 〜/ nginx / 目录。 一个是稳定版本,另一个是调试版本。 我们需要安装稳定版本。 如果您以前已经安装过nginx,那么该是删除旧版本然后安装新版本的时候了。
sudo apt-get remove nginx nginx-common nginx-full sudo dpkg -i nginx_1.9.10-1~jessie_amd64.deb
安装完成后,检查Nginx的配置参数。
sudo nginx -V
如果您在末尾看到以下行,则ngx_pagespeed模块已成功添加到Nginx。
--add-module=/home/<username>/ngx_pagespeed-1.9.32.10-beta
如果您的网站现在关闭,则需要恢复配置文件。
7.启用ngx_pagespeed模块
pagespeed与Nginx一起安装,但默认情况下处于禁用状态。 启用它之前,建议您在pingdom.com或webpagetest.org上测试网站速度。 启用后,再次进行测试以比较两个结果。
创建用于pagespeed缓存的文件夹,并将其所有权更改为Nginx用户。
sudo mkdir -p /var/ngx_pagespeed_cache sudo chown -R nginx:nginx /var/ngx_pagespeed_cache
现在打开Nginx主配置文件/etc/nginx/nginx.conf
sudo vi /etc/nginx/nginx.conf
在以下两行中添加 http 块
pagespeed on; pagespeed FileCachePath /var/ngx_pagespeed_cache;
保存并关闭文件。 然后编辑您的服务器阻止文件。
sudo vi /etc/nginx/conf.d/yourdomain.com.conf
将以下行添加到 服务器 块。
location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" { add_header "" ""; } location ~ "^/ngx_pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon" { }
保存并关闭文件。 重新加载Nginx配置。
sudo service nginx reload
8.检查PageSpeed是否正常工作
转到您的网站。 刷新几次,然后检查您的页面来源。 击中 Ctrl + F 键和搜索 页面速度。 您会看到许多网站资源已由pagespeed处理。 一些CSS文件和JavaScript文件被合并为一个文件。 如果您使用的是Google Chrome浏览器,则会看到您网站上的图片位于 网页 格式。 webp可以大大减小图像文件的大小。
您还可以通过比较您的网站速度测试来发现ngx_pagespeed正在运行。
同样在您的服务器上,您可以发出以下命令:
curl -I -p http://localhost| grep X-Page-Speed
您将看到X-Page-Speed及其版本号。
X-Page-Speed: 1.9.32.10-7423
9.阻止Nginx升级
如果存储库中有较新版本的Nginx,则 apt-get升级 默认情况下,该命令将升级Nginx,而ngx_pagespeed模块将消失。 因此,我们需要防止Nginx升级。 这可以通过以下命令来实现:
sudo apt-mark hold nginx
要显示保留哪些软件包:
apt-mark showhold
如果您更喜欢智能:
sudo aptitude hold nginx
希望本文对您有所帮助。