Lisage Brotli tugi Nginxile Ubuntu 18.04-s

Brotli (br) on uus avatud lähtekoodiga tihendusalgoritm, mille Google töötas välja alternatiivina Gzipile, Zopflile ja Deflate'ile. Internet Engineering Task Force'is (IETF) on see ametlikult määratletud kui RFC 7932 . Google'i juhtumiuuring Brotli kohta on näidanud, et tihendussuhted on kuni 26% väiksemad kui praegustel meetoditel ja väiksema protsessori kasutusega.

Nginxil pole ametlikku tuge, kuid Google'i välja töötatud kolmanda osapoole moodul nimega ngx_brotli, mida saame kasutada Nginxile toe lisamiseks.

See juhend näitab teile, kuidas lisada Nginxile Brotli tuge värskes Ubuntu 18.04 LTS Vultr eksemplaris.

MÄRKUS. Seda juhendit kasutatakse johndoenäidiskasutaja ja example.comnäidisdomeenina. Asendage need vastavalt oma nimedele.

Nõuded

  • Ubuntu 18.04 LTS server
  • Nginxi versioon 1.11.5 või uuem
  • Domeeninimi A/ AAAAkirjetega seadistatud
  • TLS sertifikaat

Enne alustamist

Kontrollige Ubuntu versiooni.

lsb_release -ds
# Ubuntu 18.04 LTS

Looge uus juurdepääsuga non-rootkasutajakonto sudoja lülituge sellele.

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

MÄRKUS . Asendage johndoeoma kasutajanimega .

Värskendage oma operatsioonisüsteemi tarkvara.

sudo apt update && sudo apt upgrade -y

Seadistage ajavöönd.

sudo dpkg-reconfigure tzdata

Installige vajalikud ehitustööriistad ja -paketid.

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

1. samm – installige Acme.sh ja hankige Let's Encrypti kaudu TLS-sertifikaat

Brotli nõuab HTTPS-i seadistamist ja kasutamist. Selles osas saame Let's Encryptilt usaldusväärse sertifikaadi.

Laadige alla ja installige 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

Kontrolli versiooni.

acme.sh --version
# v2.8.0

Hankige RSA ja ECDSA sertifikaadid 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

Pärast ülaltoodud käskude käivitamist asuvad teie sertifikaadid ja võtmed järgmistes kohtades:

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

2. samm – installige Nginx ametlikust Nginxi hoidlast

Laadige alla ja installige Nginxi ametlikust repost uusim põhiline 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

Kontrolli versiooni.

sudo nginx -v
# nginx version: nginx/1.15.2

Lubage ja käivitage Nginx.

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

3. samm – laadige alla ja kompileerige Brotli lähtekood

Pärast Nginxi installimist peame ehitama Brotli mooduli ( ngx_brotli) dünaamilise Nginxi moodulina. Alates Nginxi versioonist 1.11.5 on võimalik koostada üksikuid dünaamilisi mooduleid ilma täielikku Nginxi tarkvara kompileerimata. Järgmise paari sammuna ehitame Brotli mooduli dünaamilisena ilma täielikku Nginxi kompileerimata.

Laadige alla põhiliini Nginxi lähtekoodi uusim versioon ja ekstraktige see.

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

MÄRKUS . On väga oluline, et Nginxi paketi ja Nginxi lähtekoodi versiooninumbrid ühtiksid. Kui installisite Nginxi 1.15.2 ametlikust Nginxi hoidlast, peate alla laadima lähtekoodi sama versiooni, antud juhul 1.15.2.

Eemalda nginx-1.15.2.tar.gz.

rm nginx-1.15.2.tar.gz

Kloonige ngx_brotliGitHubist.

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

Liikuge Nginxi lähtekoodi kataloogi.

cd ~/nginx-1.15.2

Laadige alla vajalikud raamatukogud.

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

Kompileerige ngx_brotlidünaamilise moodulina ja kopeerige see Nginxi moodulite standardkataloogi /etc/nginx/modules.

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

Loetlege failid /etc/nginx/modulesja näete ngx_http_brotli_filter_module.soja ngx_http_brotli_static_module.so.

ls /etc/nginx/modules

Määrake 644kõigi .sofailide õigused.

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

4. samm – konfigureerige Nginx

Oleme valmis Brotli tuge Nginxis konfigureerima.

sudo vim /etc/nginx/nginx.confUute Brotli moodulite laadimiseks käivitage ja lisage faili ülaossa järgmised kaks käsku.

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

Testige konfiguratsiooni.

sudo nginx -t

Looge dokumendi juurkataloog example.comja looge index.htmlselle sisuga.

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

Looge jaoks virtuaalne host example.com.

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

Täitke see järgmise konfiguratsiooniga.

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;
}

Testige konfiguratsiooni.

sudo nginx -t

Laadige Nginx uuesti.

sudo systemctl reload nginx.service

Külastage oma saiti oma veebibrauseris ja avage arendajatööriistade võrgu vahekaart. Näete Content-Encoding: brvastuse päistes. See näitab, et Brotli tihendamine töötab.

Lisage Brotli tugi Nginxile Ubuntu 18.04-s

Lisage Brotli tugi Nginxile Ubuntu 18.04-s

Olete oma veebiserveris Brotli tihendamise lubanud.

Linuxi juhendid, Ubuntu, veebiserverid

Jäta kommentaar

Masinate tõus: AI tegelikud rakendused

Masinate tõus: AI tegelikud rakendused

Tehisintellekt ei ole tulevik, see on siin, olevikus. Sellest blogist loe, kuidas tehisintellekti rakendused on mõjutanud erinevaid sektoreid.

DDOS-i rünnakud: lühike ülevaade

DDOS-i rünnakud: lühike ülevaade

Kas olete ka DDOS-i rünnakute ohver ja olete segaduses ennetusmeetodite osas? Oma päringute lahendamiseks lugege seda artiklit.

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Kas olete kunagi mõelnud, kuidas häkkerid raha teenivad?

Võib-olla olete kuulnud, et häkkerid teenivad palju raha, kuid kas olete kunagi mõelnud, kuidas nad sellist raha teenivad? arutleme.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Googlei revolutsioonilised leiutised, mis muudavad teie elu lihtsaks.

Kas soovite näha Google'i revolutsioonilisi leiutisi ja seda, kuidas need leiutised muutsid iga inimese elu tänapäeval? Seejärel lugege ajaveebi, et näha Google'i leiutisi.

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Reede oluline osa: mis juhtus tehisintellektiga juhitavate autodega?

Isejuhtivate autode kontseptsioon tehisintellekti abil teedele jõudmiseks on meil juba mõnda aega unistus. Kuid vaatamata mitmele lubadusele pole neid kusagil näha. Lisateabe saamiseks lugege seda ajaveebi…

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Tehnoloogiline singulaarsus: inimtsivilisatsiooni kauge tulevik?

Kuna teadus areneb kiiresti, võttes üle suure osa meie jõupingutustest, suureneb ka oht, et allume seletamatule singulaarsusele. Loe, mida singulaarsus meie jaoks tähendada võiks.

Suurandmete viitearhitektuuri kihtide funktsioonid

Suurandmete viitearhitektuuri kihtide funktsioonid

Lugege ajaveebi, et kõige lihtsamal viisil teada saada Big Data Architecture'i erinevaid kihte ja nende funktsioone.

Andmesalvestuse areng – infograafik

Andmesalvestuse areng – infograafik

Andmete säilitamise meetodid on arenenud alates andmete sünnist. See ajaveeb käsitleb infograafiku alusel andmete salvestamise arengut.

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

6 hämmastavat eelist nutikate koduseadmete olemasolust meie elus

Selles digipõhises maailmas on nutikad koduseadmed muutunud elu oluliseks osaks. Siin on mõned nutikate koduseadmete hämmastavad eelised, mis muudavad meie elu elamisväärseks ja lihtsamaks.

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

macOS Catalina 10.15.4 täienduse värskendus põhjustab rohkem probleeme kui lahendamine

Hiljuti andis Apple välja macOS Catalina 10.15.4 täiendusvärskenduse probleemide lahendamiseks, kuid tundub, et värskendus põhjustab rohkem probleeme, mille tulemuseks on Maci masinate tellimine. Lisateabe saamiseks lugege seda artiklit