Nginx (motore-x) è un server HTTP open source e ad alte prestazioni, proxy inverso e server proxy IMAP/POP3. Le straordinarie caratteristiche di Nginx sono stabilità, un ricco set di funzionalità, una configurazione semplice e un consumo di memoria ridotto. Questo tutorial mostra come creare un pacchetto Nginx .deb per Ubuntu 16.04 dal sorgente in cui è stato compilato il modulo Google PageSpeed.
PageSpeed è un modulo web server sviluppato da Google per velocizzare i tempi di risposta del sito web, ottimizzare l'HTML restituito e ridurre il tempo di caricamento della pagina. Le caratteristiche di ngx_pagespeed includono:
- Ottimizzazione dell'immagine:rimozione dei metadati, ridimensionamento dinamico, ricompressione.
- Minimizzazione, concatenazione, inlining e struttura di CSS e JavaScript.
- Incorporamento di piccole risorse.
- Rinvio del caricamento di immagini e JavaScript.
- Riscrittura HTML.
- Estensione della durata della cache.
vedi di più https://developers.google.com/speed/pagespeed/module/.
Prerequisiti
- Ubuntu Server 16.04 - 64 bit
- privilegi di root
Cosa faremo in questo tutorial :
- Installa i pacchetti prerequisiti.
- Installazione di nginx con ngx_pagespeed.
- Test.
Installa le dipendenze di compilazione
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Installazione di nginx con ngx_pagespeed
Passaggio 1:aggiungi il repository nginx
Crea un nuovo file di repository /etc/apt/sources.list.d/nginx.list con vim.
vim /etc/apt/sources.list.d/nginx.list
Lì aggiungi le linee:
deb http://nginx.org/packages/ubuntu/ xenial nginx deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Salva il file ed esci dall'editor.
Aggiungi la chiave e aggiorna il repository:
sudo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62
sudo apt-get update
Passaggio 2:scarica nginx 1.10 dal repository di Ubuntu
Crea una nuova directory per i file sorgente nginx e scarica i sorgenti nginx con apt:
cd ~
mkdir -p ~/new/nginx_source/
cd ~/new/nginx_source/
apt-get source nginx
A volte si verifica un errore: 'I pacchetti non possono essere autenticati'.
Puoi risolverlo digitando il comando di seguito:
rm -rf /var/lib/apt/lists/
apt-get update
Quindi, installa tutte le dipendenze per creare il pacchetto nginx.
apt-get build-dep nginx
Passaggio 3:scarica Pagespeed
Crea una nuova directory per PageSpeed e scarica il sorgente di PageSpeed.
In questo tutorial utilizzeremo pagespeed 1.11.33.
mkdir -p ~/new/ngx_pagespeed/
cd ~/new/ngx_pagespeed/
ngx_version= 1.11.33.3
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${ngx_version}-beta.zip
unzip release-${ngx_version}-beta.zip
cd ngx_pagespeed-release-${ngx_version}-beta/
wget https://dl.google.com/dl/page-speed/psol/${ngx_version}.tar.gz
tar -xzvf ${ngx_version}.tar.gz
Passaggio 4:configura nginx per creare con Pagespeed
Vai alla directory 'nginx_source' e modifica il file 'rules' con vim.
cd ~/new/nginx_source/nginx-1.10.1/debian/
vim rules
Aggiungi la nuova riga in "COMMON_CONFIGURE_ARGS":
--add-module=../../ngx_pagespeed/ngx_pagespeed-release-1.11.33.3-beta \
Salva ed esci.
Passaggio 5:crea il pacchetto nginx Ubuntu e installalo
Vai alla directory dei sorgenti di nginx e compila nginx dal sorgente con il comando dpkg-buildpackage:
cd ~/new/nginx_source/nginx-1.10.1/
dpkg-buildpackage -b
Il pacchetto nginx Ubuntu verrà salvato in ~/new/ngix_source/. Una volta completata la creazione del pacchetto, cerca nella directory:
cd ~/new/ngix_source/
ls
E installa nginx e moduli deb con il comando dpkg.
dpkg -i *.deb
Test
Fase 1 - Test con il comando Nginx
Esegui nginx -V per verificare che il modulo ngx_pagespeed sia stato integrato in nginx.
nginx -V
Fase 2 - Test con il comando Curl
Vai alla directory di configurazione di nginx.
cd /etc/nginx/conf.d/
e modifica il file di configurazione dell'host virtuale predefinito.
vim default.conf
Incolla la configurazione di seguito per abilitare ngx_pagespeed.
pagespeed on;
# Needs to exist and be writable by nginx. Use tmpfs for best performance.
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 ~ "^/pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
Salva ed esci.
Quindi, testa il file di configurazione di nginx e assicurati che non ci siano errori:
nginx -t
Riavvia nginx:
systemctl restart nginx
Infine, accedi al server web nginx con il comando curl:
curl -I 192.168.1.6
Conclusione
Il server web nginx è un server http open source stabile e veloce che supporta una varietà di moduli per l'ottimizzazione della consegna dei contenuti. Uno di questi moduli è il 'Modulo PageSpeed' sviluppato da Google. A differenza di Apache, i moduli nginx non sono caricabili dinamicamente, quindi devi selezionare i moduli desiderati quando crei il pacchetto nginx.