如何在 Debian 11 上使用 Google Pagespeed 模块设置 Nginx
本教程适用于这些操作系统版本
- Debian 11(Bullseye)
- Debian 7(Wheezy)
在此页
- 先决条件
- 安装依赖包
- 检查当前的 Nginx 版本
- 下载 Nginx 和 Pagespeed 源代码
- 编译 Nginx Pagespeed 模块
- 将 Pagespeed 模块添加到当前的 Nginx 安装
- 在您的虚拟主机上添加 Nginx Pagespeed 模块
- 验证 Nginx Pagespeed 模块
- 结论
Google Pagespeed Module 是一个开源模块,用于在 Nginx 和 Apache 网络服务器下优化您的网站。 Pagespeed 模块是与 Nginx 和 Apache 网络服务器一起安装的服务器级模块。
Pagespeed 模块通过优化网站上的静态文件来提高网站的性能和速度。 Pagespeed 模块优化您网站上的图像,缩小 HTML、CSS 和 JavaScript 等静态文件,并优化文件缓存。
在本教程中,我们将向您展示如何在最新的 Debian 11 Bullseye 上构建 Nginx Pagespeed 模块。本指南可以应用于您当前的 Nginx 安装,因为您只是构建了 Nginx 模块。
先决条件
在开始之前,请确保您满足以下要求。
- 操作系统:Debian 11 Bullseye
- 根权限
现在让我们开始吧。
安装包依赖
首先,您将安装用于编译 Nginx 模块的包依赖项。
1. 执行下面的 apt 命令来更新系统上的当前存储库。
sudo apt update
2. 接下来,使用下面的apt 命令安装用于编译程序的基本包依赖项。
sudo apt install curl dpkg-dev build-essential zlib1g-dev git libpcre3 git libpcre3-dev unzip uuid-dev -y
3. 之后,安装用于编译 Nginx 模块的构建依赖项。
sudo apt build-dep nginx -y
检查当前 Nginx 版本
要构建自定义 Nginx Pagespeed 模块,请确保您当前的 Nginx Web 服务器保持与您将用于构建 Nginx 模块的 Nginx 源代码版本相同。
1。执行以下命令检查 Nginx 版本。
nginx -v
对于这个例子,我们机器上安装的当前 Nginx 版本是 1.18.0。下面是您将看到的类似输出。
nginx version: nginx/1.18.0
或者,如果您的系统上没有 Nginx 软件包,请使用下面的 apt 命令从官方 Debian 存储库安装它。
sudo apt install nginx -y
2. 接下来,使用以下命令为您的 Nginx 版本创建一个新的临时环境变量。
export NG_VER=1.18.0
下载 Nginx 和 Pagespeed 源代码
在此步骤中,您将 Nginx 源代码和 Pagespeed 模块下载到您的服务器。此 Nginx 源代码将与您当前的 Nginx 包具有相同的版本。
1.新建一个项目目录/usr/src/nginx并进入其中。
mkdir -p /usr/src/nginx; cd /usr/src/nginx
2.现在执行以下命令下载Nginx源代码并解压。
wget http://nginx.org/download/nginx-$NG_VER.tar.gz
tar -xzvf nginx-$NG_VER.tar.gz
3. 接下来,将Nginx Pagespeed 模块clone 到当前目录,过程完成后,您将看到一个新目录incubator-pagespeed-ngx。
git clone https://github.com/apache/incubator-pagespeed-ngx.git
4. 移动到incubator-pagespeed-ngx 目录并切换到Nginx Pagespeed 模块的稳定分支。
cd incubator-pagespeed-ngx/
git checkout latest-stable
5. 检查文件 PSOL_BINARY_URL 以获取页面优化库 (PSOL) 的下载链接。 Nginx Pagespeed 模块需要此库。
cat PSOL_BINARY_URL
您将看到类似如下的输出。变量 $BIT_SIZE_NAME 是您的服务器架构。
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
6. 现在用您的服务器架构的值创建一个新的临时环境变量 BIT_SIZE_NAME。以下示例使用 x64 或 64 位服务器架构。
export BIT_SIZE_NAME=x64
7. 现在下载 PSOL 源代码并解压。
wget https://dl.google.com/dl/page-speed/psol/1.13.35.2-$BIT_SIZE_NAME.tar.gz
tar -xzvf 1.13.35.2-$BIT_SIZE_NAME.tar.gz
现在您已准备好构建 Nginx Pagespeed 模块。
编译 Nginx Pagespeed 模块
在此步骤中,您将编译 Nginx Pagespeed 模块。最后,您将获得格式为 .so 的 Nginx 模块,您可以将其应用于当前的 Nginx Web 服务器。
1.将工作目录更改为Nginx项目目录。
cd /usr/src/nginx/nginx-$NG_VER
2. 执行以下命令来配置您的 Nginx 模块编译。此命令还会检查您的系统要求,确保您没有任何错误。
./configure --with-compat --add-dynamic-module=../incubator-pagespeed-ngx
下面是你应该得到的输出。
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
3. 接下来,使用以下命令编译 Nginx Pagespeed 模块。
make modules
此命令将花费一些时间,具体取决于您系统的 CPU 和内存。
4. 编译过程完成后,您的 Pagespeed 模块将作为 objs/ngx_pagespeed.so 可用。使用以下命令检查模块。
ls objs/ngx_pagespeed.so
您应该获得如下所示的 Nginx Pagespeed 模块 ngx_pagespeed.so。
-rwxr-xr-x 1 root root 19M Dec 8 21:44 objs/ngx_pagespeed.so
将 Pagespeed 模块添加到当前的 Nginx 安装
在此步骤中,您将在当前的 Nginx 安装中实施 Nginx Pagespeed 模块。为此,将 Pagespeed 模块 ngx_pagespeed.so 复制到 Nginx 模块目录并添加新配置以启用它。
1. 将模块 ngx_pagespeed.so 复制到默认的 Nginx 模块目录 /usr/share/nginx/modules。
cp /usr/src/nginx/nginx-$NG_VER/objs/ngx_pagespeed.so /usr/share/nginx/modules
2. 创建一个新的配置文件以启用 Pagespeedd 模块。
nano /usr/share/nginx/modules-available/ngx-pagespeed.conf
复制并粘贴以下配置。
load_module modules/ngx_pagespeed.so;
保存配置并退出。
3. 通过在目录 /etc/nginx/modules-enabled/ 中创建符号链接配置 ngx-pagespeed.conf 来激活 Pagespeed 模块。
ln -s /usr/share/nginx/modules-available/ngx-pagespeed.conf /etc/nginx/modules-enabled/70-ngx-pagespeed.conf
4.接下来,在/etc/nginx目录下新建配置pagespeed.conf。
nano /etc/nginx/pagespeed.conf
复制并粘贴以下配置。
pagespeed on;
# Needs to exist and be writable by nginx. Use tmpfs for best performance.
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 ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
保存配置并退出。
5. 接下来,创建一个用于存储 Nginx Pagespeed 缓存的新目录,并确保该目录可由 Nginx www-data 用户写入。
mkdir -p /var/ngx_pagespeed_cache
chown www-data:www-data /var/ngx_pagespeed_cache
现在 Nginx Pagespeed 模块已添加到您当前的 Nginx 安装中。转到下一步以在您的虚拟主机(服务器块)上启用它。
在您的虚拟主机上添加 Nginx Pagespeed 模块
要为您的虚拟主机启用 Pagespeed 模块,请使用包含选项将配置 pagespeed.conf 添加到您的虚拟主机配置文件。
1. 对于此示例,将启用 Pagespeed 模块添加到虚拟主机 default。使用 nano 编辑器编辑配置 /etc/nginx/sites-available/default。
nano /etc/nginx/sites-available/default
添加配置include /etc/nginx/pagespeed.conf;在 server {...} 部分内,如下所示。
server {
.....
....
include /etc/nginx/pagespeed.conf;
}
保存配置并退出。
2. 验证您的 Nginx 配置并确保您没有收到任何错误。之后,重新启动 Nginx 服务以应用新配置。
nginx -t
sudo systemctl restart nginx
验证 Nginx Pagespeed 模块
要验证 Nginx Pagespeed 模块的安装和实施,您可以使用 curl 命令获取 Nginx Web 服务器的 HTTP 标头或使用 Web 浏览器上的 Inspect 元素。
1. 执行下面的 curl 命令以获取 Nginx Web 服务器的 HTTP 标头。
curl -I https://domain.com/
现在你应该得到如下输出。额外的标题部分 X-Page-Speed 表示启用了 Nginx Pagespeed 模块。
HTTP/1.1 200 OK
Server: nginx/1.18.0
Content-Type: text/html
Connection: keep-alive
Date: Wed, 01 Dec 2021 22:02:52 GMT
X-Page-Speed: 1.13.35.2-0
Cache-Control: max-age=0, no-cache

2. 要从您的网络浏览器进行检查,请访问您的域名并右键单击页面,然后选择“检查”菜单。
再次重新加载您的网页,您将看到详细的 HTTP 标头,如下所示。

结论
恭喜!您已经学习了如何编译 Nginx Pagespeed 模块并将其实现到当前的 Nginx 安装。您只需要将配置 pagespeed.conf 包含到您的虚拟主机配置中。