如何在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_buildconfigure_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

希望本文对您有所帮助。

Sidebar