在 Debian 和 Ubuntu 上安装带有 Ngx_Pagespeed(速度优化)的 Nginx
在上一篇文章中,我们展示了如何在 CentOS 7 上使用 Ngx_Pagespeed 加速 Nginx 性能。在本教程中,我们将解释如何在 Debian 和 Ubuntu 系统上使用 ngx_pagespeed 安装 Nginx 以提高 Nginx 网站的性能。
Nginx [engine x] 是一款免费、开源、流行的 HTTP 服务器,为网络上的许多网站提供支持:以其高性能和稳定性而闻名。它还可以用作反向代理、通用邮件和 TCP/UDP 代理服务器,并且还可以部署为负载平衡器。
Ngx_pagespeed 是一个免费开源的 Nginx 模块,旨在提高网站速度并减少页面加载时间;它大大减少了用户查看您网站上的内容并与之交互所需的时间。
建议阅读: 安装 Mod_Pagespeed 以提高 Apache 服务器性能
ngx_pagespeed 特点:
- HTTPS 支持与 URL 控制。
- 图像优化:剥离元数据、动态调整大小、重新压缩。
- CSS 和 JavaScript 缩小、串联、内联和大纲。
- 小资源内联。
- 推迟图像和 JavaScript 加载。
- HTML 重写。
- 缓存生命周期延长。
- 允许配置多个服务器和许多其他服务器。
第 1 步:从源代码安装 Nginx
1.要从源代码安装Nginx和ngx_pagespeed,需要在系统上安装以下软件包。
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. 接下来,使用 wget 命令下载最新版本 Nginx(在撰写本文时为 1.13.2)的源文件并解压文件,如下所示。
mkdir -p ~/make_nginx
cd ~/make_nginx
wget -c https://nginx.org/download/nginx-1.13.2.tar.gz
tar -xzvf nginx-1.13.2.tar.gz
3. 接下来,获取ngx_pagespeed源文件并像这样解压压缩文件。
wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
unzip v1.12.34.2-stable.zip
4.然后进入解压后的ngx_pagespeed目录并下载PageSpeed优化库来编译Nginx,如下所示。
cd ngx_pagespeed-1.12.34.2-stable/
wget -c https://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz
tar -xvzf 1.12.34.2-x64.tar.gz
步骤 2:使用 Ngx_Pagespeed 配置并编译 Nginx
5. 接下来进入 nginx-1.13.2 目录,并使用以下命令配置 Nginx 源。
cd ~/make_nginx/nginx-1.13.2
./configure --add-module=$HOME/make_nginx/ngx_pagespeed-1.12.34.2-stable/ ${PS_NGX_EXTRA_FLAGS}
6.接下来,按如下方式编译并安装Nginx。
make
sudo make install
7. 安装过程完成后,运行以下命令为 Nginx 创建必要的符号链接。
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
步骤3:为SystemD创建Nginx单元文件
8. 在这里,您必须手动创建 Nginx 单元文件,因为 systemd 是较新版本的 Debian 和 Ubuntu 系统上的 init 系统
首先,创建文件 /lib/systemd/system/nginx.service。
sudo vi /lib/systemd/system/nginx.service
然后下载 NGINX systemd 服务文件,将单元文件配置粘贴到该文件中。
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存文件并关闭它。
9. 现在,暂时启动 nginx 服务,并使用以下命令使其在系统启动时启动。
sudo systemctl start nginx
sudo systemctl enable nginx
重要:启动 Nginx 服务后,您可能会看到如下屏幕截图所示的错误。
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
要解决此问题,请打开 Nginx 配置 /etc/nginx/nginx.conf 文件并附加以下行。
#pid logs/nginx.pid;
to
pid /run/nginx.pid;
最后再次重启nginx服务。
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl status nginx
步骤 4:使用 Pagespeed 模块配置 Nginx
10. 现在 Nginx 已安装并在您的系统上运行,您需要启用 Ngx_pagespeed 模块。首先创建一个目录,模块将在其中缓存您网站的文件,并为此目录设置适当的权限,如下所示。
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. 要启用 Ngx_pagespeed 模块,请打开 Nginx 配置文件。
sudo vi /etc/nginx/nginx.conf
在服务器块中添加以下 Ngx_pagespeed 配置行。
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 虚拟主机,请将上述 pagespeed 指令添加到每个服务器块,以在每个站点上启用 Ngx_pagespeed。
以下是在默认虚拟主机中启用 Ngx_pagespeed 的 Nginx 配置文件的工作示例。
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 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" { }
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
保存并关闭文件。
12.然后运行下面的命令检查Nginx配置文件的语法是否有错误,如果正确,您将看到以下输出:
sudo nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
13.然后重新启动Nginx服务器以使最近的更改生效。
sudo systemctl restart nginx
第 5 步:使用 Ngx_pagespeed 测试 Nginx
14. 现在使用下面的 cURL 命令测试 Ngx-pagespeed 是否可以与 Nginx 结合使用。
curl -I -p http://localhost
如果您没有看到上述标题,请返回到步骤 10,并仔细阅读说明,通过后续步骤启用 Ngx-pagespeed。
NGX-pagespeed Github存储库:https://github.com/pagespeed/ngx_pagespeed
如果您想保护 Nginx Web 服务器的安全,那么我们建议您阅读这个有用的教程:保护、强化和提高 Nginx 性能的终极指南。
这就对了!在本教程中,我们解释了如何在 Debian 和 Ubuntu 上使用 ngx_pagespeed 安装 Nginx。如果您有任何疑问,请使用下面的评论表发送给我们。