将 PageSpeed 模块添加到已安装的 nginx

将 PageSpeed 模块添加到已安装的 nginx

我喜欢将 Google PageSpeed 模块添加到 Ubuntu 上的 nginx 网络服务器。

此链接提供了简单的概述https://developers.google.com/speed/pagespeed/module/build_ngx_pagespeed_from_source?hl=de但它仅涵盖从头安装 nginx 的情况。

我已经安装了 nginx,当我在 /var/lib/nginx 文件夹中输入以下命令行时,出现“没有此文件”错误:

./configure --add-module=$HOME/ngx_pagespeed-release-1.7.30.4-beta

答案1

解决这个问题的最好办法是从头开始构建 Nginx。

先将你的 nginx 配置文件保存到安全的地方,然后执行下列操作(假设你使用的是 Debian):

sudo dpkg -r nginx

如果你使用的是 Debian: sudo apt-get install build-essential zlib1g-dev libpcre3-dev

如果不在 Debian 中,请确保删除 Nginx 并从源代码获取构建 Nginx 所需的库。

这些库和工具包括:

gcc-c++ pcre zlib make wget

下一部分与系统无关。

获取最新的 Nginx 版本:

cd /usr/src/
sudo wget http://nginx.org/download/nginx-1.7.6.tar.gz
sudo  tar xvfvz nginx-1.7.6.tar.gz
cd /usr/src/nginx-1.7.6

获取最新的 pagespeed 源:

sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.9.32.1-beta.zip

首先解压模块:

sudo unzip v1.9.32.1-beta.zip

cd ngx_pagespeed-1.9.32.1-beta

获取模块目录中的 PSOL 库并在那里解压:

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

cd 返回 nginx 源根目录并执行 configure、make 和 make install。确保在配置阶段将 Nginx 用户更改为适合您需要的用户(--user=nginx --group=nginx):

cd /usr/src/nginx-1.7.6

./configure --add-module=/usr/src/nginx-1.7.6/ngx_pagespeed-1.9.32.1-beta --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx

配置阶段完成后:

sudo make

sudo make install

这样你就会得到最新的 Nginx 版本以及最新的 pagespeed mod 和库。

答案2

您可以使用自定义 PPA 源将使用 Pagespeed 构建的 nginx 安装到您的系统中。

看着https://launchpad.net/~sandyd/+archive/nginx-current-pagespeed用于定制构建。

答案3

看起来这需要执行一些命令,如果你不想从头构建 NGINX。下面是我使用的 bash 脚本自动将 PageSpeed 安装到已运行的 NGINX 实例

#!/bin/bash
# https://www.majlovesreg.one/tag/code/
# https://www.majlovesreg.one/adding-pagespeed-to-a-running-nginx-instance

# For custom NGINX version, use:
# ngver=1.14.2
# For passing via the command line, use:
# ngver=$1
# For automated detection of installed NGINX, use:
ngver=$(nginx -v 2>&1 | grep -oP '(?<=/).*')

moddir=/usr/share/nginx/modules
builddir=$(mktemp -d)

# Build in tmp directory
cd ${builddir}

# Use script provided by pagespeed
nice -n 19 ionice -c 3 bash <(curl -f -L -sS https://ngxpagespeed.com/install) -n ${ngver} -m -b ${builddir} -a '--with-compat' -y || { echo '!! error with module creation, exiting...'; exit 1; }

# Replace ngx_pagespeed.so if exists, otherwise, copy it
[ -f ${moddir}/ngx_pagespeed.so ] && sudo mv ${moddir}/ngx_pagespeed.so ${moddir}/ngx_pagespeed.so.old
sudo chmod 644 /usr/local/nginx/modules/ngx_pagespeed.so || { echo '!! error with module path, exiting...'; exit 2; }
sudo cp /usr/local/nginx/modules/ngx_pagespeed.so ${moddir}/

# If new module works well, clean up build and install files
sudo nginx -t && { sudo rm -r /usr/local/nginx; rm -r ${builddir}/incubator-pagespeed-ngx-latest-stable; rm -r ${builddir}/nginx-${ngver}; } || { echo '!! nginx conf failed, exiting...'; exit 4; }

# Restart NGINX
systemctl is-active nginx && sudo systemctl restart nginx || sudo systemctl start nginx
echo
systemctl --no-pager status nginx
echo
echo 'Build and install of ngx_pagespeed sucessful!'
echo

要启用动态模块并设置其他 PageSpeed 设置,请参阅:https://www.majlovesreg.one/adding-pagespeed-to-a-running-nginx-instance

相关内容