Installer Nginx med Ngx_Pagespeed (hastighetsoptimalisering) på Debian og Ubuntu
I vår siste artikkel viste vi hvordan du kan øke hastigheten på Nginx-ytelsen med Ngx_Pagespeed på CentOS 7. I denne opplæringen vil vi forklare hvordan du installerer Nginx med ngx_pagespeed på Debian- og Ubuntu-systemet for å forbedre ytelsen til Nginx-nettsteder.
Nginx [engine x] er en gratis og åpen kildekode, populær HTTP-server som driver mange nettsteder på nettet: kjent for sin høye ytelse og stabilitet. Den fungerer også som en omvendt proxy, generisk e-post og TCP/UDP proxy-server, og kan i tillegg distribueres som en lastbalanser.
Ngx_pagespeed er en gratis og åpen kildekode Nginx-modul beregnet på å forbedre hastigheten på nettsteder samt redusere sideinnlastingstid; det reduserer drastisk tiden det tar for brukere å se og samhandle med innhold på nettstedet ditt.
Foreslått lesing: Installer Mod_Pagespeed for å forbedre Apache-serverytelsen
Ngx_pagespeed-funksjoner:
- HTTPS-støtte med URL-kontroll.
- Bildeoptimalisering: stripping av metadata, dynamisk endring av størrelse, rekomprimering.
- CSS og JavaScript minifikasjon, sammenkobling, inlining og outlining.
- Liten ressurs inlining.
- Utsetter innlasting av bilde og JavaScript.
- HTML-omskriving.
- Forlengelse av cachens levetid.
- Tillater konfigurering for flere servere og mange andre.
Trinn 1: Nginx-installasjon fra kilden
1. For å installere Nginx med ngx_pagespeed fra kilden kreves følgende pakker som skal installeres på systemet.
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. Deretter laster du ned kildefilene til den nyeste versjonen av Nginx (1.13.2 når dette skrives) ved å bruke wget-kommandoen og pakk ut filene som vist nedenfor.
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. Deretter henter du ngx_pagespeed-kildefilene og pakker ut den komprimerte filen slik.
wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
unzip v1.12.34.2-stable.zip
4. Gå deretter inn i den utpakkede ngx_pagespeed-katalogen og last ned PageSpeed-optimaliseringsbibliotekene for å kompilere Nginx som følger.
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
Trinn 2: Konfigurer og kompiler Nginx med Ngx_Pagespeed
5. Gå deretter inn i nginx-1.13.2-katalogen, og konfigurer Nginx-kilden ved å bruke følgende kommandoer.
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. Deretter kompilerer og installerer du Nginx som følger.
make
sudo make install
7. Etter at installasjonsprosessen er fullført, kjør kommandoene nedenfor for å lage de nødvendige symbolkoblingene for Nginx.
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Trinn 3: Opprette Nginx Unit File for SystemD
8. Her må du manuelt opprette Nginx-enhetsfilen siden systemd er init-systemet på nyere versjoner av Debian- og Ubuntu-systemet
Først, opprett filen /lib/systemd/system/nginx.service.
sudo vi /lib/systemd/system/nginx.service
Last deretter ned NGINX systemd-tjenestefilen og lim inn enhetsfilkonfigurasjonen i filen.
[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
Lagre filen og lukk den.
9. Start nå nginx-tjenesten inntil videre, og aktiver den til å starte ved systemoppstart ved å bruke kommandoene nedenfor.
sudo systemctl start nginx
sudo systemctl enable nginx
Viktig: Etter å ha startet Nginx-tjenesten, kan du se en feil som vist på skjermbildet nedenfor.
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
For å løse det, åpne Nginx-konfigurasjonsfilen /etc/nginx/nginx.conf og legg til følgende linje.
#pid logs/nginx.pid;
to
pid /run/nginx.pid;
Start endelig nginx-tjenesten på nytt.
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl status nginx
Trinn 4: Konfigurer Nginx med Pagespeed Module
10. Nå som Nginx er installert og kjører på systemet ditt, må du aktivere Ngx_pagespeed-modulen. Opprett først en katalog der modulen vil cache filene for nettstedet ditt og angi passende tillatelser på denne katalogen som følger.
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. For å aktivere Ngx_pagespeed-modulen, åpne Nginx-konfigurasjonsfilen.
sudo vi /etc/nginx/nginx.conf
Legg til følgende Ngx_pagespeed-konfigurasjonslinjer i serverblokken.
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" { }
Merk: Hvis du har distribuert noen virtuelle nginx-verter på serveren, legg til sidehastighetsdirektivene ovenfor til hver serverblokk for å aktivere Ngx_pagespeed på hvert nettsted.
Følgende er et fungerende eksempel på Nginx-konfigurasjonsfilen med Ngx_pagespeed aktivert i standard virtuell vert.
#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;
# }
#}
}
Lagre og lukk filen.
12. Sjekk deretter om syntaksen til Nginx-konfigurasjonsfilen er feilfri ved å kjøre kommandoen nedenfor. Hvis den er riktig, vil du se utdataene nedenfor:
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. Start deretter Nginx-serveren på nytt for å utføre de siste endringene.
sudo systemctl restart nginx
Trinn 5: Tester Nginx med Ngx_pagespeed
14. Test nå om Ngx-pagespeed nå fungerer sammen med Nginx ved å bruke cURL-kommandoen nedenfor.
curl -I -p http://localhost
Hvis du ikke har klart å se overskriften ovenfor, gå tilbake til trinn 10 og gå nøye gjennom instruksjonene for å aktivere Ngx-pagespeed med de påfølgende trinnene.
Ngx-pagespeed Github-lager: https://github.com/pagespeed/ngx_pagespeed
Hvis du vil sikre Nginx-nettserveren, foreslår vi at du leser gjennom denne nyttige opplæringen: Den ultimate guiden for å sikre, herde og forbedre ytelsen til Nginx.
Det er det! I denne opplæringen forklarte vi hvordan du installerer Nginx med ngx_pagespeed på Debian og Ubuntu. Hvis du har spørsmål, send oss gjerne ved å bruke kommentarskjemaet nedenfor.