GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Nginx s Brotli Compression na Ubuntu 18.04 LTS

Nginx (engine-x) je open source vysoce výkonný HTTP server, reverzní proxy a IMAP/POP3 proxy server. Vynikající vlastnosti Nginx jsou stabilita, bohatá sada funkcí, jednoduchá konfigurace a nízká spotřeba paměti.

Brotli je open source kompresní algoritmus vytvořený společností Google. Brotli poskytuje lepší a bezztrátovou kompresi než gzip a nyní je podporována hlavními prohlížeči a webovými servery.

Více o představení Brotli:

  • Příspěvek na blogu Akamai.
  • Příspěvek Cloudflare o Brotli.
  • Příspěvek na blogu Mozilla.

V tomto tutoriálu vám krok za krokem ukážu, jak přidat podporu pro kompresní algoritmus Brotli na webový server Nginx. Vytvoříme vlastní balíček nginx, který podporuje kompresní algoritmus brotli. Budeme používat nejnovější verzi Ubuntu a navíc vytvoříme balíček nginx pro operační systém Debian.

Předpoklady

  • Ubuntu 18.04
  • Oprávnění uživatele root

Co uděláme?

  1. Nainstalujte závislosti sestavení
  2. Nainstalujte Nginx pomocí ngx_brotli
    • Přidat úložiště Nginx
    • Stáhněte si Nginx a ngx_brotli
    • Sestavte Nginx s podporou ngx_brotli
    • Nainstalujte Nginx a povolte podporu ngx_brotli
  3. Nakonfigurujte virtuálního hostitele Nginx
  4. Testování

Krok 1 – Instalace závislostí sestavení

První věc, kterou potřebujeme pro tuto příručku, je nainstalovat závislosti sestavení do systému.

Aktualizujte úložiště Ubuntu a poté nainstalujte všechny závislosti sestavení balíčků pomocí příkazu apt níže.

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

Počkejte, až se nainstalují všechny balíčky.

Krok 2 – Instalace Nginx pomocí ngx_brotli

V tomto kroku nainstalujeme vlastní balíček nginx, který podporuje kompresní algoritmus brotli v systému Ubuntu. A budeme používat nejnovější stabilní verzi balíčku nginx, kterou lze stáhnout z oficiálního úložiště nginx.

Přidat úložiště Nginx

Před přidáním úložiště nginx přidejte znak klíče nginx pomocí příkazu níže.

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

Nyní vytvořte nový soubor úložiště nginx 'nginx.list' v adresáři '/etc/apt/sources.list.d' pomocí editoru vim.

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

Vložte konfiguraci níže.

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

Uložte a ukončete.

Nyní aktualizujte úložiště ubuntu.

sudo apt-get update

Bylo přidáno úložiště Nginx.

Stáhnout zdrojové soubory Nginx a ngx_brotli

Nyní si stáhneme balíčky Nginx z úložiště nginx pomocí příkazu apt.

Přejděte do adresáře '/usr/local/src' a stáhněte si zdrojový kód Nginx pomocí příkazu apt níže.

cd /usr/local/src
sudo apt source nginx

Nyní nainstalujte všechny potřebné závislosti balíčků pro nginx.

sudo apt build-dep nginx -y

A po dokončení veškeré instalace naklonujte zdrojový kód 'ngx_brotli' z GitHubu.

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

Nginx a ngx_brotli byly staženy.

Sestavte Nginx s podporou ngx_brotli

Nyní musíme upravit výchozí pravidlo sestavení Nginx, musíme přidat ngx_brotli do pravidla sestavení balíčků.

Přejděte do adresáře '/usr/local/src/nginx-*' a upravte konfiguraci debian 'rules'.

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

Nyní získáte dvě prostředí sestavení pro 'config.env.nginx a 'config.env.nginx_debug '. Přidejte volbu '--add-module=' pro ngx_brotli do obou sestavených prostředí.

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

Uložte a ukončete.

A jsme připraveni zkompilovat a sestavit balíček nginx s podporou ngx_brotli.

Spusťte níže uvedený příkaz dpkg.

sudo dpkg-buildpackage -b -uc -us

Poznámka:

  • -b:Vytváří pouze binární soubory, žádné zdrojové soubory.
  • -uc :Nepodepsaný soubor .buildinfo a .changes.
  • -us:nepodepsaný zdrojový balíček.

Po dokončení sestavení získáte balíčky nginx-*.deb v adresáři '/usr/local/src', jak je uvedeno níže.

ls -lah

Nainstalovat Nginx a povolit podporu Brotli

Sestavení nginx s ngx_brotli bylo dokončeno, nainstalujte balíčky nginx-*.deb pomocí příkazu dpkg níže.

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

Nginx s podporou ngx_brotli byl nainstalován.

Nyní přejděte do konfiguračního adresáře '/etc/nginx' a upravte konfigurační soubor 'nginx.conf'.

cd /etc/nginx/
vim nginx.conf

Povolte ngx_brotli na nginx přidáním konfigurace níže do sekce '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;

Uložte a ukončete.

Otestujte konfiguraci nginx a ujistěte se, že nedochází k chybě.

nginx -t

Podpora komprese brotli byla povolena.

Krok 3 – Konfigurace virtuálního hostitele Nginx

V tomto kroku se pokusíme vytvořit nového virtuálního hostitele pro název domény nginx.hakase-labs.io.

Poznámka:

  • Komprese Brotli podporuje pouze web HTTPS, takže se ujistěte, že máte soubory certifikátů pro název své domény, nebo si můžete vygenerovat bezplatné certifikáty Letsencrypt SSL.

Přejděte do konfiguračního adresáře '/etc/nginx' a vytvořte novou konfiguraci virtuálního hostitele 'brotli.conf'.

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

Zde vložte následující konfiguraci virtuálního hostitele 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; } }

Uložte a ukončete.

Poznámka:

  • Změňte název domény na svou vlastní doménu.
  • Změňte cestu k certifikátům SSL.

Nyní otestujte konfiguraci nginx a ujistěte se, že nedošlo k chybě, poté restartujte službu.

nginx -t
systemctl restart nginx

Byl přidán nový virtuální hostitel nginx.

Krok 4 – Testování

Otevřete webový prohlížeč a zadejte název domény, moje je:

http://nginx.hakase-labs.io

Nyní budete přesměrováni na připojení https. Klikněte pravým tlačítkem na stránku a klikněte na 'Prozkoumat prvek '. Klikněte na položku Síť a znovu načtěte stránku.

Klikněte na podrobnosti požadavků a získáte záhlaví všech požadavků a odpovědí z webového serveru, jak je uvedeno níže.

V sekci 'Záhlaví odpovědí' uvidíte 'content-encoding:br' pro podporu brotli.

Nyní, pokud chcete další test, můžete použít příkaz curl, jak je znázorněno níže.

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

A uvidíte výsledek 'content-encoding:br' pro podporu brotli.

Instalace Nginx s podporou komprese Brotli na Ubuntu 18.04 byla úspěšně dokončena.

Odkazy

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

Ubuntu
  1. Jak nainstalovat Nextcloud s Nginx na Ubuntu 18.04 LTS

  2. Jak nainstalovat Seafile s Nginx na Ubuntu 20.04 LTS

  3. Jak nasadit Modsecurity s Nginx na Ubuntu 20.04 LTS

  1. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  2. Jak nainstalovat Varnish Reverse Proxy s Nginx na Ubuntu 16.04 LTS

  3. Jak nainstalovat Seafile s Nginx na Ubuntu 18.04 LTS

  1. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  2. Jak nainstalovat Mailpile s Nginx na Ubuntu 15.10

  3. Jak nainstalovat Redmine 3 s Nginx na Ubuntu 15.10