Instalirajte Nginx s Ngx_Pagespeed (optimizacija brzine) na Debian i Ubuntu
U našem posljednjem članku pokazali smo kako ubrzati performanse Nginxa pomoću Ngx_Pagespeed na CentOS-u 7. U ovom vodiču ćemo objasniti kako instalirati Nginx s ngx_pagespeed na Debian i Ubuntu sustavu kako biste poboljšali performanse Nginx web stranica.
Nginx [engine x] je besplatan i popularan HTTP server otvorenog koda koji pokreće mnoge web lokacije: dobro poznat po svojim visokim performansama i stabilnosti. Takođe radi kao obrnuti proxy, generički mail i TCP/UDP proxy server, a može se dodatno primijeniti kao balansator opterećenja.
Ngx_pagespeed je besplatan Nginx modul otvorenog koda namijenjen poboljšanju brzine web lokacija kao i smanjenju vremena učitavanja stranica; drastično smanjuje vrijeme potrebno korisnicima za pregled i interakciju sa sadržajem na vašoj web lokaciji.
Preporučeno čitanje: Instalirajte Mod_Pagespeed da poboljšate performanse Apache servera
Ngx_pagespeed karakteristike:
- HTTPS podrška sa URL kontrolom.
- Optimizacija slike: uklanjanje meta-podataka, dinamičko mijenjanje veličine, ponovna kompresija.
- CSS i JavaScript minifikacija, konkatenacija, umetanje i obris.
- Umetanje malih resursa.
- Odgađanje učitavanja slike i JavaScripta.
- HTML prepisivanje.
- Produženje životnog vijeka keša.
- Omogućava konfigurisanje za više servera i mnoge druge.
Korak 1: Instalacija Nginxa iz izvora
1. Da biste instalirali Nginx sa ngx_pagespeed iz izvora potrebni su sljedeći paketi koji će biti instalirani na sistemu.
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
2. Zatim preuzmite izvorne datoteke najnovije verzije Nginxa (1.13.2 u vrijeme pisanja ovog teksta) koristeći komandu wget i raspakirajte datoteke kao što je prikazano ispod.
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. Zatim uzmite ngx_pagespeed izvorne fajlove i raspakujte komprimovani fajl ovako.
wget -c https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-stable.zip
unzip v1.12.34.2-stable.zip
4. Zatim se pomaknite u raspakirani direktorij ngx_pagespeed i preuzmite biblioteke optimizacije PageSpeed za kompajliranje Nginxa na sljedeći način.
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
Korak 2: Konfigurirajte i kompajlirajte Nginx sa Ngx_Pagespeed
5. Zatim idite u direktorij nginx-1.13.2 i konfigurirajte Nginx izvor koristeći sljedeće naredbe.
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. Zatim kompajlirajte i instalirajte Nginx na sljedeći način.
make
sudo make install
7. Nakon što je proces instalacije završen, pokrenite donje naredbe da kreirate potrebne simbolične veze za Nginx.
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
sudo ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
Korak 3: Kreiranje Nginx jedinične datoteke za SystemD
8. Ovdje ćete morati ručno kreirati Nginx jediničnu datoteku jer je systemd init sistem na novijim verzijama Debian i Ubuntu sistema
Prvo, kreirajte datoteku /lib/systemd/system/nginx.service.
sudo vi /lib/systemd/system/nginx.service
Zatim preuzmite NGINX systemd servisnu datoteku i zalijepite konfiguraciju datoteke jedinice u datoteku.
[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
Sačuvajte datoteku i zatvorite je.
9. Sada pokrenite uslugu nginx za sada i omogućite joj da se pokrene pri pokretanju sistema pomoću naredbi ispod.
sudo systemctl start nginx
sudo systemctl enable nginx
Važno: Nakon pokretanja Nginx usluge, možda ćete vidjeti grešku kao što je prikazano na snimku ekrana ispod.
systemd[1]: nginx.service: PID file /run/nginx.pid not readable (yet?) after start: No such file or directory
Da biste to riješili, otvorite Nginx konfiguracijski fajl /etc/nginx/nginx.conf i dodajte sljedeći red.
#pid logs/nginx.pid;
to
pid /run/nginx.pid;
Konačno ponovo pokrenite nginx servis.
sudo systemctl daemon-reload
sudo systemctl start nginx
sudo systemctl status nginx
Korak 4: Konfigurirajte Nginx sa Pagespeed modulom
10. Sada kada je Nginx instaliran i radi na vašem sistemu, morate omogućiti modul Ngx_pagespeed. Prvo kreirajte direktorij u kojem će modul keširati datoteke za vašu web stranicu i postaviti odgovarajuće dozvole za ovaj direktorij na sljedeći način.
sudo mkdir -p /var/ngx_pagespeed_cache
sudo chown -R nobody:nogroup /var/ngx_pagespeed_cache
11. Da biste omogućili modul Ngx_pagespeed, otvorite Nginx konfiguracijski fajl.
sudo vi /etc/nginx/nginx.conf
Dodajte sljedeće konfiguracijske linije Ngx_pagespeed unutar bloka servera.
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" { }
Napomena: Ako ste postavili bilo koje nginx virtuelne hostove na serveru, dodajte gore navedene direktive pagespeed u svaki blok servera da omogućite Ngx_pagespeed na svakoj stranici.
Slijedi radni primjer Nginx konfiguracijske datoteke sa Ngx_pagespeed omogućenom u zadanom virtuelnom hostu.
#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;
# }
#}
}
Sačuvajte i zatvorite datoteku.
12. Zatim provjerite da li je sintaksa Nginx konfiguracijske datoteke bez grešaka tako što ćete pokrenuti naredbu ispod, ako je ispravna, vidjet ćete izlaz ispod:
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. Nakon toga ponovo pokrenite Nginx server da izvršite nedavne promjene.
sudo systemctl restart nginx
Korak 5: Testiranje Nginxa sa Ngx_pagespeed
14. Sada testirajte da li Ngx-pagespeed sada radi zajedno sa Nginxom koristeći naredbu cURL ispod.
curl -I -p http://localhost
Ako niste uspjeli vidjeti gornje zaglavlje, vratite se na korak 10 i pažljivo prođite kroz upute kako biste omogućili Ngx-pagespeed sa uzastopnim koracima.
Ngx-pagespeed Github spremište: https://github.com/pagespeed/ngx_pagespeed
Ako želite osigurati Nginx web server, predlažemo da pročitate ovaj korisni vodič: Ultimativni vodič za sigurnost, ojačanje i poboljšanje performansi Nginxa.
To je to! U ovom vodiču objasnili smo kako instalirati Nginx s ngx_pagespeed na Debian i Ubuntu. Ako imate bilo kakva pitanja, pošaljite nam putem našeg obrasca za komentare ispod.