我喜欢将 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