Installer Nginx med Ngx_Pagespeed (Speed Optimization) på Debian og Ubuntu
I vores sidste artikel viste vi, hvordan du fremskynder Nginx-ydeevnen med Ngx_Pagespeed på CentOS 7. I denne vejledning vil vi forklare, hvordan du installerer Nginx med ngx_pagespeed på Debian og Ubuntu-systemet for at forbedre ydeevnen på Nginx-websteder.
Nginx [engine x] er en gratis og open source, populær HTTP-server, der driver mange websteder på nettet: kendt for sin høje ydeevne og stabilitet. Det fungerer også som en omvendt proxy, generisk mail og TCP/UDP-proxyserver og kan desuden implementeres som en load balancer.
Ngx_pagespeed er et gratis og open source Nginx-modul beregnet til at forbedre webstedets hastighed samt reducere sidens indlæsningstid; det sænker drastisk den tid det tager for brugerne at se og interagere med indhold på dit websted.
- HTTPS-understøttelse med URL-kontrol.
- Billedoptimering: fjernelse af metadata, dynamisk ændring af størrelse, komprimering.
- Minificering, sammenkædning, indlejring og skitsering af CSS og JavaScript.
- Lille ressourceindlægning.
- Udskudt billede og JavaScript indlæses.
- HTML-omskrivning.
- Cache levetid forlængelse.
- Tillader konfiguration af flere servere og mange andre.
Trin 1: Nginx-installation fra kilde
1. For at installere Nginx med ngx_pagespeed fra kilden kræves følgende pakker, der skal installeres på systemet.
$ sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. Download derefter kildefiler af den nyeste version af Nginx (1.13.2 på tidspunktet for denne skrivning) ved hjælp af wget-kommandoen og udpak filerne 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. Hent derefter ngx_pagespeed-kildefilerne, og pakk den komprimerede fil ud som denne.
$ wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip $ unzip v1.12.34.2-stable.zip
4. Gå derefter ind i det udpakkede ngx_pagespeed-bibliotek, og download PageSpeed-optimeringsbibliotekerne for at 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
Trin 2: Konfigurer og kompilér Nginx med Ngx_Pagespeed
5. Gå derefter ind i nginx-1.13.2-biblioteket, og konfigurer Nginx-kilden ved hjælp af 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. Derefter kompileres og installeres Nginx som følger.
$ make $ sudo make install
7. Når installationen er afsluttet, skal du køre kommandoerne nedenfor for at oprette de nødvendige symlinks til Nginx.
$ sudo ln -s /usr/local/nginx/conf/ /etc/nginx $ sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Trin 3: Oprettelse af Nginx-enhedsfil til SystemD
8. Her skal du oprette Nginx-enhedsfilen manuelt, da systemd er init-systemet på nyere versioner af Debian- og Ubuntu-systemet
Fisrt, opret filen /lib/systemd/system/nginx.service.
$ sudo vi /lib/systemd/system/nginx.service
Download derefter NGINX systemd-servicefilen, indsæt enhedens filkonfiguration 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
Gem filen, og luk den.
9. Start nu nginx-tjenesten indtil videre, og aktiver den til at starte ved systemstart ved hjælp af nedenstående kommandoer.
$ sudo systemctl start nginx $ sudo systemctl enable nginx
Vigtigt: Efter start af Nginx-tjenesten kan du muligvis se en fejl som vist på skærmbilledet nedenfor.
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
For at løse det skal du åbne Nginx-konfiguration /etc/nginx/nginx.conf-filen og tilføje følgende linje.
#pid logs/nginx.pid; to pid /run/nginx.pid;
Genstart endelig nginx-tjenesten igen.
$ sudo systemctl daemon-reload $ sudo systemctl start nginx $ sudo systemctl status nginx
Trin 4: Konfigurer Nginx med Pagespeed-modul
10. Nu hvor Nginx er installeret og kører på dit system, skal du aktivere Ngx_pagespeed-modulet. Opret først et bibliotek, hvor modulet cache filerne til dit websted, og indstil de passende tilladelser til denne mappe som følger.
$ sudo mkdir -p /var/ngx_pagespeed_cache $ sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. For at aktivere Ngx_pagespeed-modulet skal du åbne Nginx-konfigurationsfilen.
$ sudo vi /etc/nginx/nginx.conf
Tilføj følgende Ngx_pagespeed-konfigurationslinjer 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" { }
Bemærk: Hvis du har distribueret nginx-virtuelle værter på serveren, skal du tilføje ovenstående sidespeed-direktiver til hver serverblok for at aktivere Ngx_pagespeed på hvert websted.
Følgende er et fungerende eksempel på Nginx-konfigurationsfilen med Ngx_pagespeed aktiveret i standard virtuel vært.
#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; # } #} }
Gem og luk filen.
12. Kontroller derefter, om syntaxen for Nginx-konfigurationsfilen er fejlfri ved at køre kommandoen nedenfor, hvis den er korrekt, vil du se output 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. Genstart derefter Nginx-serveren for at foretage de seneste ændringer.
$ sudo systemctl restart nginx
Trin 5: Test af Nginx med Ngx_pagespeed
14. Test nu, om Ngx-sidespeed nu fungerer sammen med Nginx ved hjælp af cURL-kommandoen nedenfor.
$ curl -I -p http://localhost
Hvis du ikke har set ovenstående overskrift, skal du gå tilbage til trin 10 og gennemgå instruktionerne omhyggeligt for at aktivere Ngx-sidespeed med de efterfølgende trin.
Ngx-sidespeed Github-arkiv: https://github.com/pagespeed/ngx_pagespeed
Hvis du vil sikre Nginx-webserveren, foreslår vi at læse igennem denne nyttige vejledning: Den ultimative guide til sikring, hærdning og forbedring af Nginx-ydeevne.
Det er det! I denne vejledning forklarede vi, hvordan du installerer Nginx med ngx_pagespeed på Debian og Ubuntu. Hvis du har spørgsmål, skal du sende os ved hjælp af nedenstående formular til kommentarer.