Přidejte podporu Brotli do Nginx na Ubuntu 18.04

Brotli (br) je nový open source kompresní algoritmus vyvinutý společností Google jako alternativa k Gzip, Zopfli a Deflate. Je formálně definován v Internet Engineering Task Force (IETF) jako RFC 7932 . Případová studie společnosti Google týkající se Brotli ukázala kompresní poměry až o 26 % menší než současné metody, při menším využití procesoru.

Nginx nemá oficiální podporu, ale existuje modul třetí strany vyvinutý společností Google s názvem ngx_brotli, který můžeme použít k přidání podpory do Nginx.

Tato příručka vám ukáže, jak přidat podporu Brotli do Nginx na čerstvé instanci Ubuntu 18.04 LTS Vultr.

POZNÁMKA: Tato příručka bude sloužit johndoejako příklad uživatele a example.comjako příklad domény. Nahraďte je podle svých jmen.

Požadavky

  • Server Ubuntu 18.04 LTS
  • Nginx verze 1.11.5 nebo vyšší
  • Název domény s nastavenými záznamy A/AAAA
  • TLS certifikát

Než začnete

Zkontrolujte verzi Ubuntu.

lsb_release -ds
# Ubuntu 18.04 LTS

Vytvořte nový non-rootuživatelský účet s sudopřístupem a přepněte na něj.

adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
su - johndoe

POZNÁMKA : Nahraďte johndoesvým uživatelským jménem .

Aktualizujte software operačního systému.

sudo apt update && sudo apt upgrade -y

Nastavte časové pásmo.

sudo dpkg-reconfigure tzdata

Nainstalujte požadované nástroje a balíčky pro sestavení.

sudo apt install -y build-essential git apt-transport-https socat

Krok 1 – Nainstalujte Acme.sh a získejte certifikát TLS od Let's Encrypt

Brotli vyžaduje, abyste nastavili a používali HTTPS. V tomto díle získáme důvěryhodný certifikát od Let's Encrypt.

Stáhněte a nainstalujte Acme.sh.

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail your_email@example.com
cd ~
source ~/.bashrc

Zkontrolujte verzi.

acme.sh --version
# v2.8.0

Získejte certifikáty RSA a ECDSA pro example.com.

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail your_email@example.com --ocsp-must-staple --keylength 2048

# ECDSA/ECC P-256
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --accountemail your_email@example.com --ocsp-must-staple --keylength ec-256

Po spuštění výše uvedených příkazů budou vaše certifikáty a klíče v následujících umístěních:

  • RSA: /etc/letsencrypt/example.com
  • ECC/ECDSA: /etc/letsencrypt/example.com_ecc

Krok 2 – Nainstalujte Nginx z oficiálního úložiště Nginx

Stáhněte si a nainstalujte nejnovější hlavní řadu Nginx z oficiálního repozitáře Nginx.

wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
rm nginx_signing.key
sudo -s
printf "deb https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \ndeb-src https://nginx.org/packages/mainline/ubuntu/ `lsb_release -sc` nginx \n" >> /etc/apt/sources.list.d/nginx_mainline.list
exit
sudo apt update
sudo apt install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt

Zkontrolujte verzi.

sudo nginx -v
# nginx version: nginx/1.15.2

Povolte a spusťte Nginx.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Krok 3 – Stáhněte si a zkompilujte zdrojový kód Brotli

Po instalaci Nginx musíme sestavit modul Brotli ( ngx_brotli) jako dynamický modul Nginx. Od verze Nginx 1.11.5 je možné kompilovat jednotlivé dynamické moduly bez kompilace kompletního softwaru Nginx. V několika následujících krocích vytvoříme modul Brotli jako dynamický bez kompilace kompletního Nginx.

Stáhněte si nejnovější verzi hlavního zdrojového kódu Nginx a rozbalte jej.

wget https://nginx.org/download/nginx-1.15.2.tar.gz && tar zxvf nginx-1.15.2.tar.gz

POZNÁMKA : Je velmi důležité, aby se čísla verzí balíčku Nginx a zdrojového kódu Nginx shodovala. Pokud jste nainstalovali Nginx 1.15.2 z oficiálního úložiště Nginx, musíte si stáhnout stejnou verzi zdrojového kódu , v tomto případě 1.15.2.

Odebrat nginx-1.15.2.tar.gz.

rm nginx-1.15.2.tar.gz

Klon ngx_brotliz GitHubu.

git clone https://github.com/eustas/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ~

Přejděte do adresáře zdrojového kódu Nginx.

cd ~/nginx-1.15.2

Stáhněte si požadované knihovny.

sudo apt install -y libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

Zkompilujte ngx_brotlijako dynamický modul a zkopírujte jej do standardního adresáře pro moduly Nginx, /etc/nginx/modules.

./configure --with-compat --add-dynamic-module=../ngx_brotli
make modules
sudo cp objs/*.so /etc/nginx/modules

Seznam souborů /etc/nginx/modulesa uvidíte ngx_http_brotli_filter_module.soa ngx_http_brotli_static_module.so.

ls /etc/nginx/modules

Nastavte oprávnění na 644pro všechny .sosoubory.

sudo chmod 644 /etc/nginx/modules/*.so

Krok 4 – Nakonfigurujte Nginx

Jsme připraveni nakonfigurovat podporu Brotli v Nginx.

Spusťte sudo vim /etc/nginx/nginx.confa přidejte následující dvě direktivy na začátek souboru pro načtení nových modulů Brotli.

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Otestujte konfiguraci.

sudo nginx -t

Vytvořte kořenový adresář dokumentu example.coma vytvořte index.htmlv něm nějaký obsah.

sudo mkdir -p /var/www/example.com
sudo -s
echo "Hello from example.com" >> /var/www/example.com/index.html
exit

Vytvořte virtuálního hostitele pro example.com.

sudo vim /etc/nginx/conf.d/example.com.conf

Naplňte jej následující konfigurací.

server {
  listen 80;
  server_name example.com; # Replace with your domain name
  return 301 https://$server_name$request_uri;
}

server {    
  listen 443 ssl http2;
  server_name example.com; # Replace with your domain name

  root /var/www/example.com; # Replace with your document root

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  brotli on;
  brotli_static on;
  brotli_types text/plain text/css text/javascript application/javascript text/xml application/xml image/svg+xml application/json;
}

Otestujte konfiguraci.

sudo nginx -t

Znovu načtěte Nginx.

sudo systemctl reload nginx.service

Navštivte svůj web ve webovém prohlížeči a otevřete kartu Síť nástrojů pro vývojáře. Uvidíte Content-Encoding: brv záhlaví odpovědí. To je indikátor, že komprese Brotli funguje.

Přidejte podporu Brotli do Nginx na Ubuntu 18.04

Přidejte podporu Brotli do Nginx na Ubuntu 18.04

Na svém webovém serveru jste povolili kompresi Brotli.

Zanechat komentář

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.

Útoky DDOS: Stručný přehled

Útoky DDOS: Stručný přehled

Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Přemýšleli jste někdy, jak hackeři vydělávají peníze?

Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.

Revoluční vynálezy od Googlu, které vám usnadní život.

Revoluční vynálezy od Googlu, které vám usnadní život.

Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Friday Essential: Co se stalo s auty řízenými umělou inteligencí?

Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…

Technologická singularita: vzdálená budoucnost lidské civilizace?

Technologická singularita: vzdálená budoucnost lidské civilizace?

Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.

Funkcionality vrstev referenční architektury velkých dat

Funkcionality vrstev referenční architektury velkých dat

Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.

Evoluce ukládání dat – Infografika

Evoluce ukládání dat – Infografika

Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

6 úžasných výhod toho, že máme v životě zařízení pro chytrou domácnost

V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Aktualizace doplňku macOS Catalina 10.15.4 způsobuje více problémů než řešení

Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více