在CentOS 7上安装带有Ngx_pagespeed的nginx

・6 分钟阅读

介绍

ngx pagespeed是一个开放源码的nginx模块,它可以加速站点,并且减少页面加载时间,它通过重写网页来减少延迟和带宽,NGXpagespeed还提供许多优化过滤器,用于优化各种文件如CSS HTML PNG和JPG。

前提条件

  • 运行CentOS 7.的新部署实例
  • 一个sudo用户

步骤1:更新系统

在你的CentOS服务器实例上安装任何软件包之前,建议你更新系统,使用sudo用户登录,并运行以下命令来更新系统。


sudo yum -y update 
sudo reboot

系统重启后,再次作为sudo用户登录,然后继续下一步。

步骤2:下载依赖项

要使用ngx pagespeed,我们必须从源代码编译nginx,为此,我们需要通过运行以下命令下载一些软件。


sudo yum -y install gcc-c++ pcre-devel zlib-devel make unzip

接下来,我们需要下载nginx和ngx pagespeed的源代码。 在撰写本文时,最新的稳定版本是Nginx 1.12.0,最新的ngx pagespeed版本是1.12.34.2.


NPS_VERSION=1.12.34.2
NGINX_VERSION=1.12.0
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}-beta.zip

提取下载的软件包。


tar -xvzf nginx-${NGINX_VERSION}.tar.gz
unzip v${NPS_VERSION}-beta.zip

步骤3:下载PageSpeed优化库

编译Nginx需要PageSpeed优化库(psol ),使用以下命令在ngx-pagespeed源目录中下载,并且提取它们。


cd ngx_pagespeed-${NPS_VERSION}-beta
psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
wget ${psol_url}
tar -xzvf $(basename ${psol_url})
cd ..

步骤4:配置和编译Nginx

现在可以使用pagespeed模块编译Nginx源代码,转到Nginx源代码的目录。


cd nginx-${NGINX_VERSION}

使用以下命令配置源代码。


./configure --add-module=$HOME/ngx_pagespeed-${NPS_VERSION}-beta --user=nobody --group=nobody --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}

配置完成后,使用以下命令编译Nginx :

 
sudo make

 

这可能需要几分钟时间,之后,你可以继续使用以下命令安装软件:

 
sudo make install

 

现在Nginx已安装在目录/usr/local/nginx中,为方便起见,我们可以创建以下符号链接:


sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

步骤5:创建启动脚本

为了能够停止和启动Nginx,你必须手动创建启动脚本,Nginx在这里提供了一个模板 ,复制模板内容,并使用诸如nano之类的文本编辑器将它插入到/etc/init.d/nginx文件中,同时为文件设置正确的权限。


sudo nano /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx

你现在可以启动,然后使用以下命令将它添加到默认运行级别(Nginx将与你的实例一起启动和停止):


sudo service nginx start
sudo systemctl enable nginx

步骤6启用NGX页面速度

要启用ngx pagespeed,首先要创建一个缓存目录,并将它所有权分配给Nginx


sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nobody /var/ngx_pagespeed_cache

打开/etc/nginx/nginx.conf文件:


sudo nano /etc/nginx/nginx.conf

在服务器块中添加以下行:


##
# Pagespeed main settings

pagespeed on;
pagespeed FileCachePath /var/ngx_pagespeed_cache;

# 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" { }

最后,重新启动Nginx以使更改生效:


sudo systemctl restart nginx

步骤6:测试

要检查服务器上是否正确安装了NGX pagespeed,请运行以下命令:


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

输出应该是这样的:


X-Page-Speed: 1.12.34.2-0

Ngx-pagespeed现已安装在您的服务器上。

Anne655 profile image