Nopeuta Nginx-suorituskykyä Ngx_Pagespeed-toiminnolla CentOS 7: ssä
Nginx [engine x] on ilmainen ja avoimen lähdekoodin, monitasoinen, tehokas verkkopalvelin ja käänteinen välityspalvelinohjelmisto, kirjoitettu C. tasapainottaja.
Nginx on tunnettu HTTP-palvelin (verrattavissa Apache HTTP -palvelimeen), joka käyttää useita sivustoja verkossa; se on suosittu korkean suorituskyvyn ja vakauden vuoksi.
On useita tärkeitä tekijöitä, jotka on otettava huomioon, kun haluat parantaa sivustosi käyttökokemusta, mukaan lukien sivuston nopeus ja sivun nopeus (tunnetaan myös nimellä sivun latausaika). Jos sivustoasi käyttää Nginx, voit käyttää ngx_pagespeed tähän tarkoitukseen.
Ngx_pagespeed on ilmainen ja avoimen lähdekoodin Nginx-moduuli, jota käytetään nopeuttamaan sivustoja ja pienentämään sivun latausaikaa. Se vähentää huomattavasti aikaa, joka kuluu käyttäjille sivustosi sisällön katseluun ja vuorovaikutukseen.
- Tuki HTTPS: lle ja URL-osoitteiden hallinnalle.
- Kuvan optimointi: metadatan poistaminen, dynaamisen koon muuttaminen, uudelleenpakkaaminen.
- CSS: n ja JavaScriptin minimointi, ketjutus, rivitys ja hahmottelu.
- Pieni resurssirivi.
- Kuvan ja JavaScriptin lataamisen lykkääminen.
- HTML: n uudelleenkirjoittaminen.
- Välimuistin käyttöiän laajennus.
- Mahdollistaa määrityksen useille palvelimille ja monille muille.
Tässä opetusohjelmassa näytetään, kuinka Nginx asennetaan ngx_pagespeed-toiminnolla, ja testataan koko asennus RHEL/CentOS 7: ssä.
Huomio: Debianin ja Ubuntu-käyttäjät voivat seurata tätä ohjetta Asenna Ngx_Pagespeed Nginxin suorituskyvyn parantamiseksi.
Vaihe 1: Asenna Nginx lähteestä
1. Nginxin asentaminen ngx_pagespeed-sovelluksella edellyttää sen kääntämistä lähteestä. Asenna ensin kaikki paketit, joita tarvitaan Nginxin kääntämiseen tällaisesta lähteestä.
# yum install wget gcc cmake unzip gcc-c++ pcre-devel zlib-devel OR # yum group install "Development Tools"
2. Seuraavaksi hanki Nginx: n uusimman version lähdetiedostot (1.13.2 tämän kirjoituksen aikaan) wget-komennolla ja pura ladattu tervapallo alla olevan mukaisesti.
# mkdir ~/downloads # cd ~/downloads # wget -c https://nginx.org/download/nginx-1.13.2.tar.gz # tar -xzvf nginx-1.13.2.tar.gz
3. Lataa seuraavaksi ngx_pagespeed-lähdetiedostot ja pura pakatut tiedostot.
# wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip # unzip v1.12.34.2-stable.zip
4. Siirry nyt purettuun ngx_pagespeed-hakemistoon ja pyydä PageSpeed-optimointikirjastoja kääntämään Nginx seuraavasti.
# 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
Vaihe 2: Määritä ja käännä Nginx Ngx_Pagespeed-sovelluksella
5. Siirry nyt hakemistoon nginx-1.13.2 ja määritä Nginx-lähde suorittamalla alla olevat komennot.
# cd ~/downloads/nginx-1.13.2 # ./configure --add-module=$HOME/downloads/ngx_pagespeed-1.12.34.2-stable/ --user=nobody --group=nobody --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid ${PS_NGX_EXTRA_FLAGS}
6. Seuraavaksi käännä ja asenna Nginx seuraavasti.
# make # make install
7. Kun asennus on valmis, luo kaikki tarvittavat symlinkit Nginxiä varten.
# ln -s /usr/local/nginx/conf/ /etc/nginx/ # ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Vaihe 3: Nginx-yksikkötiedoston luominen SystemD: lle
8. Seuraavaksi, koska systemd on CentOS 7: n init-järjestelmä, sinun on luotava sille Nginx-yksikkötiedosto manuaalisesti.
Luo tiedosto, luo tiedosto /lib/systemd/system/nginx.service ja tartu sitten NGINX systemd -palvelutiedostoon ja liitä yksikkötiedoston kokoonpano alla olevaan tiedostoon.
# vi /lib/systemd/system/nginx.service
Ota huomioon PIDFile-tiedoston ja NGINX-binaarin sijainti, jotka määritit Nginxin määrityksen ja käännöksen yhteydessä, ja asetat ne yksikkötiedoston sopiviin muuttujiin alla esitetyllä tavalla:
[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
Tallenna tiedosto ja sulje se.
9. Käynnistä tässä vaiheessa nginx-palvelu keskimääräiseksi ajaksi ja salli se käynnistymään järjestelmän käynnistyksen yhteydessä suorittamalla alla olevat komennot.
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
Vaihe 4: Määritä Nginx Pagespeed-moduulilla
10. Kun Nginx on asennettu, sinun on seuraavaksi otettava käyttöön Ngx_pagespeed-moduuli. Aloita luomalla hakemisto, johon moduuli tallentaa välimuistin verkkosivustosi tiedostoille, ja asettamalla tarvittavat oikeudet tähän hakemistoon alla olevilla komennoilla.
# mkdir -p /var/ngx_pagespeed_cache # chown -R nobody:nobody /var/ngx_pagespeed_cache
11. Nyt on aika ottaa käyttöön Ngx_pagespeed-moduuli, avata Nginx-määritystiedosto ja lisätä alla olevat rivit.
Tärkeää: Jos olet määrittänyt minkä tahansa nginx-virtuaaliaseman palvelimelle, lisää yllä olevat sivunopeusdirektiivit kuhunkin palvelinlohkoon, jotta Ngx_pagespeed otetaan käyttöön kullakin sivustolla.
# vi /etc/nginx/nginx.conf
Lisää seuraavat Ngx_pagespeed-määritysrivit palvelinlohkoon.
# 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" { }
Seuraava on toimiva esimerkki Nginx-määritystiedostosta, jonka Ngx_pagespeed on käytössä oletusarvoisessa virtuaaliasemassa.
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/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. Varmista myöhemmin, että Nginx-määritystiedosto on virheetön suorittamalla alla oleva komento. Näet alla olevan lähdön, jos kaikki on hyvin.
# nginx -t
13. Käynnistä lopuksi Nginx-palvelin uudelleen, jotta muutokset astuvat voimaan.
# systemctl restart nginx
Vaihe 5: Nginxin testaaminen Ngx_pagespeed-toiminnolla
14. Jos haluat tietää, toimiiko Ngx_pagespeed nyt yhdessä Nginxin kanssa, sen on oltava X-Page-Speed-otsikossa.
# curl -I -p http://localhost
Jos et näe yllä olevaa otsikkoa, palaa sitten vaiheeseen 11 ja seuraa ohjeita huolellisesti, jotta Ngx-pagespeed otetaan käyttöön seuraavilla vaiheilla.
Ngx-pagespeed Github -tietovarasto: https://github.com/pagespeed/ngx_pagespeed
Siinä kaikki! Tässä opetusohjelmassa näytimme, kuinka Nginx asennetaan ja määritetään Ngx_pagespeed-moduulilla sivuston suorituskyvyn optimoimiseksi ja lyhentämiseksi.
Nginx-verkkopalvelimen suojaamiseksi lue tämä artikkeli - Ultimate Guide to Nginx Web Server -palvelimen suojaaminen, kovettaminen ja suorituskyvyn parantaminen.
Kuten aina, älä epäröi ilmoittaa meille tätä opetusohjelmaa koskevista kysymyksistä tai ajatuksista.