如何对Nginx的加入ngx_pagespeed在Ubuntu 14.04

介绍

ngx_pagespeed或只是pagespeed,是一个Nginx模块,旨在通过减少其资源的大小自动优化您的网站,从而减少客户端浏览器加载它所需的时间。 如果你不熟悉它已经,请检查其官方网站

本文将指导您完成Nginx的pagespeed模块的安装和配置。 重要的是要知道,Nginx的不支持,例如Apache在其他Web服务器可用模块动态加载是很重要的。 由于Nginx不支持此功能,因此您需要从源代码构建Nginx以添加模块。

拥有自己的定制包有一个缺点 - 当有新版本时,您单独负责更新它。 在衡量使用ngx_pagespeed的利弊时考虑这一点。

先决条件

本指南是为Ubuntu 14.04编写的。 一个CentOS的版本7Debian 8版本都可以使用。

在遵循本教程之前,请确保您满足以下先决条件:

除非另有说明,本教程中需要root权限的所有命令都应以具有sudo权限的非root用户身份运行。

第1步 - 下载源及其依赖关系

任何事情之前,我们必须确保通过可用的软件包列表apt-get已更新:

sudo apt-get update

接下来,我们必须满足运行Nginx所需的所有依赖。 为此,运行命令:

sudo apt-get build-dep nginx

之后,在您的主目录中创建一个文件夹,以下载Nginx的源代码包:

mkdir ~/custom-nginx

更改到此新创建的目录:

cd ~/custom-nginx

然后,使用以下命令下载此目录中的Nginx源包:

sudo apt-get source nginx

为了确认我们是在同一页上,列出文件夹的内容~/custom-nginx

ls ~/custom-nginx

结果应如下所示:

Output of ls ~/custom-nginxnginx-1.4.6  nginx_1.4.6-1ubuntu3.3.debian.tar.gz  nginx_1.4.6-1ubuntu3.3.dsc  nginx_1.4.6.orig.tar.gz

可以看到,在编写本教程时,Nginx源包的版本是1.4.6。 要开始添加ngx_pagespeed模块,你首先需要去的modules文件夹中提取的文件夹内nginx-1.4.6

cd nginx-1.4.6/debian/modules

在这个目录中,从下载最新的ngx_pagespeed源存档Github上库使用以下命令:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/master.zip

一旦下载完成,您将需要unzip实用程序来解压缩。 如果您还没有unzip ,用命令来安装它:

sudo apt-get install unzip

之后,用命令提取下载的文件:

sudo unzip master.zip

这将创建一个新的目录名为ngx_pagespeed-master你的内部~/nginx-1.4.6/debian/modules目录。 为了方便这个目录重命名为刚ngx_pagespeed使用以下命令:

sudo mv ngx_pagespeed-master ngx_pagespeed

进入新的内部ngx_pagespeed目录:

cd ngx_pagespeed

从那里,下载编译所需的PageSpeed Optimization Libraries(psol):

sudo wget https://dl.google.com/dl/page-speed/psol/1.9.32.6.tar.gz

如果在阅读本文时指向psol存档的链接不工作,请跳过此步骤。 如果在后续步骤中编译期间缺少库,您将看到一个错误和更新的说明如何获取包以后。

最后,提取里面的PSOL包~/custom-nginx/nginx-1.4.6/debian/modules/ngx_pagespeed目录:

sudo tar -xzvf 1.9.32.6.tar.gz

第2步 - 自定义源

此时,您可以自定义编译规则,并在安装中包括ngx_pagespeed。 为此,编辑文件~/custom-nginx/nginx-1.4.6/debian/rules与你喜欢的编辑器:

sudo nano ~/custom-nginx/nginx-1.4.6/debian/rules

有你有建设的Nginx的包五种不同的场景: corefulllightextrasnaxsi 如它们的名字暗示, common包含共同Nginx的文件,而无需在服务器, full包括与最流行的模块的服务器, light创建具有唯一的基本模块的服务器, extras是用于与它的一些额外的花式模块的服务器,并且naxsi另外还有naxsi模块(一个web应用程序防火墙)。

让我们假设你需要一个light的Nginx设置加ngx_pagespeed。 因此,在年底light_configure_flags配置块添加一行:

〜/ custom-nginx / nginx-1.4.6 / debian / rules
--add-module=$(MODULESDIR)/ngx_pagespeed \

请不要忘记添加一个反斜杠( \在行的末尾)。 整个配置块应该如下所示:

〜/ custom-nginx / nginx-1.4.6 / debian / rules
config.status.light: config.env.light
        cd $(BUILDDIR_light) && ./configure  \
            $(common_configure_flags) \
            --with-http_gzip_static_module \
            --without-http_browser_module \
            --without-http_geo_module \
            --without-http_limit_req_module \
            --without-http_limit_zone_module \
            --without-http_memcached_module \
            --without-http_referer_module \
            --without-http_scgi_module \
            --without-http_split_clients_module \
            --without-http_ssi_module \
            --without-http_userid_module \
            --without-http_uwsgi_module \
            --add-module=$(MODULESDIR)/nginx-echo \
            --add-module=$(MODULESDIR)/ngx_pagespeed \
            >$@
        touch $@

如果你发现一个不同的Nginx安装更方便,你可以添加相同的行到其他构建方案。

接下来,增加源包版本,因为这将有助于您以后固定包。 要做到这一点,打开changelog用文本编辑器文件中:

sudo nano ~/custom-nginx/nginx-1.4.6/debian/changelog

在第一行changelog文件代表了当前软件包版本( 1.4.6-1ubuntu3.3 )和Ubuntu的开发代号( trusty )。 添加自定义标签,如pagespeed在通过这样一个连字符开头的版本号的末尾:

changelog
nginx (1.4.6-1ubuntu3.3-pagespeed) trusty-proposed; urgency=medium

第3步 - 使用Pagespeed模块构建和安装Nginx

现在你已经定制了构建以包括ngx_pagespeed模块,您已经准备好构建Nginx。

进入目录~/custom-nginx/nginx-1.4.6/使用以下命令:

cd ~/custom-nginx/nginx-1.4.6/

从这里,运行命令来构建新的自定义Nginx二进制包:

sudo dpkg-buildpackage -b

构建过程最多需要大约10分钟。 如果你担心,你可能会在这段时间内断开连接,你可以尝试使用screen中的说明这篇文章

如果您已遵循所有说明,构建过程应完成,没有任何错误。 为了找到新的自定义Nginx的包去一个目录到~/custom-nginx/使用以下命令:

cd ~/custom-nginx/

列出的内容~/custom-nginx/目录:

ls ~/custom-nginx/

你应该找到了很多.deb软件包。 你需要的那些被称为nginx-common_1.4.6-1ubuntu3.3-pagespeed_all.deb (包含公共Nginx的文件)和nginx-light_1.4.6-1ubuntu3.3-pagespeed_amd64.deb (包含自定义光服务器)。 pagespeed如果指定了不同的自定义标签的部分可能会有所不同changelog文件。

要使用pagespeed模块安装自定义Nginx,请运行命令:

sudo dpkg -i nginx-common_1.4.6-1ubuntu3.3-pagespeed_all.deb nginx-light_1.4.6-1ubuntu3.3-pagespeed_amd64.deb

第4步 - 启用Pagespeed模块

你现在已经安装了Nginx。 下一步是启用ngx_pagespeed模块。

在启用模块之前,您必须创建一个文件夹,它将缓存您网站的文件:

sudo mkdir -p /var/ngx_pagespeed_cache

确保将此文件夹的所有权更改为Nginx用户,以便Web服务器可以在其中存储文件:

sudo chown -R www-data:www-data /var/ngx_pagespeed_cache

然后,打开主Nginx的配置文件nginx.conf在这样的你最喜欢的文本编辑器:

sudo nano /etc/nginx/nginx.conf

在这个文件中添加以下行到http模块并保存更改:

/etc/nginx/nginx.conf
##
# Pagespeed Settings
##

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

您可以在任意位置添加这些行http块,但在我们的例子中,我们将它添加到块的结尾。

这是怎么/etc/nginx/nginx.conf文件应该看看现在:

/etc/nginx/nginx.conf
...
http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        ##
        # Pagespeed Settings
        ##

        pagespeed on;
        pagespeed FileCachePath /var/ngx_pagespeed_cache;
...

此外,您还需要配置的PageSpeed行添加到每个 server位于块文件/etc/nginx/sites-available 例如,编辑/etc/nginx/sites-available/default文件:

sudo nano /etc/nginx/sites-available/default

添加以下到年底server块:

/ etc / nginx / sites-available
#  Ensure requests for pagespeed optimized resources go to the pagespeed
#  handler and no extraneous headers get set.
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon" { }

上述pagespeed配置行确保pagespeed将优化每个站点的资源。

最后,重启Nginx服务器使更改生效:

sudo service nginx restart

第5步 - 测试安装

要检查ngx_pagespeed模块是否已成功安装,请运行Nginx二进制文件,如下所示:

sudo /usr/sbin/nginx -V

如果安装成功,您应该在其他模块中看到ngx_pagespeed模块:

Outputnginx version: nginx/1.4.6
...
--add-module=/home/your_user/custom-nginx/nginx-1.4.6/debian/modules/ngx_pagespeed

以上并不意味着pagespeed已启用并适用于您的网站。 为了证实这一点,您可以使用curl ,工具和客户端的URL传输库。 如果你没有curl已经安装,然后用命令来安装它:

sudo apt-get install curl

用于检查后X-Page-Speed标题是这样的:

curl -I -p http://localhost| grep X-Page-Speed

如果ngx_pagespeed模块工作正常,您应该在输出中看到它及其版本:

OutputX-Page-Speed: 1.9.32.6-7321

如果没有看到此标题,请确保已根据上一步中的说明启用了pagespeed。

第6步 - 固定您的定制Nginx软件包

为了防止您的自定义Nginx的包在将来正在取代apt与Nginx的较新版本中,您应该引脚(HOLD)您的包裹通过以下步骤进行升级:

创建一个新的nginx文件/etc/apt/preferences.d

sudo nano /etc/apt/preferences.d/nginx

然后粘贴以下行并保存:

/etc/apt/preferences.d/nginx
Package: nginx-light
Pin: version 1.4.6-1ubuntu3.3-pagespeed
Pin-Priority: 1001

请确保指定您决定使用的Nginx软件包。 在我们的例子,它是nginx-light 此外,像您的自定义标签沿指定确切版本1.4.6-1ubuntu3.3-pagespeed

结论

这就是如何使用自定义模块,pagespeed来构建Nginx。 这些步骤对于Nginx中尚不可用的任何其他模块都有效。 此外,从源安装包的整个过程与您可能需要自定义的其他软件包相似。 只是不要忘记,当你有一个新的版本,你将不得不自己维护和重新安装这些软件包。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏