GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Nginx con la compressione Brotli su Ubuntu 18.04 LTS

Nginx (engine-x) è un server HTTP open source ad alte prestazioni, proxy inverso e server proxy IMAP/POP3. Le straordinarie caratteristiche di Nginx sono la stabilità, un ricco set di funzionalità, una configurazione semplice e un basso consumo di memoria.

Brotelli è un algoritmo di compressione open source creato da Google. Brotli fornisce una compressione migliore e senza perdite rispetto a gzip ed è ora supportato dai principali browser e server web.

Maggiori informazioni sulle prestazioni di Brotli:

  • Post del blog Akamai.
  • Post di Cloudflare su Brotli.
  • Post del blog Mozilla.

In questo tutorial, ti mostrerò passo dopo passo come aggiungere il supporto per l'algoritmo di compressione Brotli nel server web Nginx. Creeremo un pacchetto nginx personalizzato che supporti l'algoritmo di compressione brotli. Utilizzeremo l'ultima versione di Ubuntu, inoltre creeremo un pacchetto nginx per il sistema operativo Debian.

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo?

  1. Installa le dipendenze di build
  2. Installa Nginx con ngx_brotli
    • Aggiungi repository Nginx
    • Scarica Nginx e ngx_brotli
    • Crea Nginx con il supporto di ngx_brotli
    • Installa Nginx e abilita il supporto ngx_brotli
  3. Configura l'host virtuale Nginx
  4. Test

Passaggio 1:installazione delle dipendenze di build

La prima cosa di cui abbiamo bisogno per questa guida è installare le dipendenze di build sul sistema.

Aggiorna il repository di Ubuntu e quindi installa tutti i pacchetti per creare dipendenze usando un comando apt di seguito.

sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

Attendi tutti i pacchetti installati.

Passaggio 2:installa Nginx con ngx_brotli

In questo passaggio, installeremo il pacchetto nginx personalizzato che supporta l'algoritmo di compressione brotli sul sistema Ubuntu. E utilizzeremo l'ultima versione stabile del pacchetto nginx che può essere scaricato dal repository ufficiale di nginx.

Aggiungi repository Nginx

Prima di aggiungere il repository nginx, aggiungi il segno della chiave nginx usando il comando seguente.

curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Ora crea il nuovo file di repository nginx 'nginx.list' nella directory '/etc/apt/sources.list.d' usando l'editor vim.

vim /etc/apt/sources.list.d/nginx.list

Incolla la configurazione di seguito.

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

Salva ed esci.

Ora aggiorna i repository Ubuntu.

sudo apt-get update

Il repository Nginx è stato aggiunto.

Scarica i file sorgente Nginx e ngx_brotli

Ora scaricheremo i pacchetti Nginx dal repository nginx usando il comando apt.

Vai alla directory '/usr/local/src' e scarica il sorgente Nginx usando il comando apt qui sotto.

cd /usr/local/src
sudo apt source nginx

Ora installa tutte le dipendenze del pacchetto necessarie per nginx.

sudo apt build-dep nginx -y

E al termine dell'installazione, clona il codice sorgente 'ngx_brotli' da GitHub.

git clone --recursive https://github.com/google/ngx_brotli.git

Nginx e ngx_brotli sono stati scaricati.

Crea Nginx con il supporto ngx_brotli

Ora dobbiamo modificare la regola di build Nginx predefinita, dobbiamo aggiungere ngx_brotli alla regola di build dei pacchetti.

Vai alla directory '/usr/local/src/nginx-*' e modifica la configurazione debian 'rules'.

cd /usr/local/src/nginx-*/
vim debian/rules

Ora otterrai due ambienti di compilazione per 'config.env.nginx ' e 'config.env.nginx_debug '. Aggiungi l'opzione '--add-module=' per ngx_brotli a entrambi gli ambienti compilati.

--add-module=/usr/local/src/ngx_brotli

Salva ed esci.

E siamo pronti per compilare e costruire il pacchetto nginx con il supporto di ngx_brotli.

Esegui il comando dpkg di seguito.

sudo dpkg-buildpackage -b -uc -us

Nota:

  • -b:crea solo binari, nessun file sorgente.
  • -uc :File .buildinfo e .changes non firmato.
  • -us:pacchetto sorgente non firmato.

Al termine della compilazione, otterrai i pacchetti nginx-*.deb nella directory '/usr/local/src' come mostrato di seguito.

ls -lah

Installa Nginx e abilita il supporto Brotli

La compilazione di nginx con ngx_brotli è stata completata, installa i pacchetti nginx-*.deb usando il comando dpkg di seguito.

cd /usr/local/src/
sudo dpkg -i *.deb

Nginx con il supporto ngx_brotli è stato installato.

Ora vai nella directory di configurazione '/etc/nginx' e modifica il file di configurazione 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Abilita ngx_brotli su nginx aggiungendo la configurazione di seguito all'interno della sezione 'http {...}'.

    brotli on;
    brotli_comp_level 6;
    brotli_static on;
    brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;

Salva ed esci.

Verifica la configurazione di nginx e assicurati che non ci siano errori.

nginx -t

Il supporto per la compressione brotli è stato abilitato.

Passaggio 3:configurazione dell'host virtuale Nginx

In questo passaggio, proveremo a creare un nuovo host virtuale per il nome di dominio nginx.hakase-labs.io.

Nota:

  • La compressione Brotli supporta solo il sito HTTPS, quindi assicurati di avere i file del certificato per il tuo nome di dominio, oppure puoi generare certificati SSL Letsencrypt gratuiti.

Vai alla directory di configurazione '/etc/nginx' e crea una nuova configurazione di host virtuale 'brotli.conf'.

cd /etc/nginx/
vim conf.d/brotli.conf

Incolla lì la seguente configurazione dell'host virtuale nginx.

# Redirect HTTP to HTTPS Nginx
server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# web root directory location / { root /usr/share/nginx/html; } }

Salva ed esci.

Nota:

  • Cambia il nome di dominio con il tuo dominio.
  • Cambia il percorso dei certificati SSL.

Ora prova la configurazione di nginx e assicurati che non ci siano errori, quindi riavvia il servizio.

nginx -t
systemctl restart nginx

Il nuovo host virtuale nginx è stato aggiunto.

Fase 4 - Test

Apri il tuo browser web e digita il nome di dominio, il mio è:

http://nginx.hakase-labs.io

Ora verrai reindirizzato alla connessione https. Fare clic con il pulsante destro del mouse sulla pagina e fare clic su 'Ispeziona elemento '. Fai clic su "Rete ' e ricarica la pagina.

Fai clic sui dettagli delle richieste e otterrai tutte le intestazioni di richieste e risposte dal server Web come mostrato di seguito.

Nella sezione "Intestazioni di risposta", vedrai "codifica del contenuto:br" per il supporto di brotli.

Ora se vuoi un altro test, puoi usare il comando curl come mostrato di seguito.

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

E vedrai il risultato 'codifica del contenuto:br' per il supporto di brotli.

L'installazione di Nginx con Brotli Compression Support su Ubuntu 18.04 è stata completata con successo.

Riferimenti

  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. Come installare Nextcloud con Nginx su Ubuntu 18.04 LTS

  2. Come installare Seafile con Nginx su Ubuntu 20.04 LTS

  3. Come installare MediaWiki con Nginx su Ubuntu 16.04

  4. Come installare Varnish Reverse Proxy con Nginx su Ubuntu 16.04 LTS

  5. Come distribuire Modsecurity con Nginx su Ubuntu 20.04 LTS

Come installare phpMyAdmin con Nginx (LEMP) su Ubuntu 18.04 LTS

Come installare Nginx con il modulo Ngx_Pagespeed su Ubuntu 16.04 LTS

Come installare Joomla con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 18.04 LTS

Come installare phpMyAdmin con Nginx su Ubuntu 20.04 LTS

Come installare il modulo Brotli per Nginx su Ubuntu 20.04 LTS