Jak dodać obsługę Brotli do Nginx na Ubuntu 18.04 | 16.04

  • Eustace Evans
  • 0
  • 3292
  • 856

Ten krótki samouczek pokazuje studentom i nowym użytkownikom, jak dodać obsługę Brotli do Nginx podczas korzystania z Ubuntu 18.04 | 16.04.

Brotli (w skrócie br) to algorytm kompresji open source opracowany przez Google, który może być używany jako alternatywa dla Gzip, Zopfli i Deflate. W niektórych badaniach dane mogą być skompresowane o 10 do 20 procent bardziej niż obecne algorytmy kompresji.

Jeśli chcesz używać Brotli z Nginx, musisz użyć rozszerzenia ngx_brotli moduł opracowany przez Google, ponieważ Nginx nie ma oficjalnego wsparcia, przynajmniej dla jego bezpłatnej wersji.

Wersja komercyjna Nginx może obsługiwać Brotli.

Kiedy będziesz gotowy do włączenia obsługi Brotli do Nginx, wykonaj poniższe czynności:

Krok 1: Zainstaluj certyfikaty SSL

Brotli wymaga SSL. Nginx będzie musiał obsługiwać SSL, zanim będziesz mógł korzystać z Brotli. Ponieważ Let's encrypt jest łatwy w instalacji i obsłudze w systemie Ubuntu, wykonaj poniższe czynności, aby zainstalować bezpłatny certyfikat SSL Let's Encrypt.

Przed wygenerowaniem bezpłatnych certyfikatów z symbolami wieloznacznymi upewnij się, że certbot jest zainstalowany i działa… Aby go zainstalować, uruchom poniższe polecenia:

sudo apt update sudo apt-get install letsencrypt

Powyższe polecenia zainstalują narzędzie certbot i wszystkie zależności, które pozwolą mu działać…

Po zainstalowaniu narzędzia możesz przystąpić do generowania certyfikatów…

Let's Encrypt zapewnia wiele sposobów, aby rzucić wyzwanie, aby potwierdzić, że jesteś właścicielem domeny, dla której chcesz zapewnić certyfikaty SSL. Nie będziesz w stanie wygenerować certyfikatów, jeśli nie możesz udowodnić, że jesteś właścicielem domeny, dla której chcesz uzyskać certyfikaty… .

Jednak w przypadku certyfikatów wieloznacznych jedyną metodą wyzwania, którą akceptuje Let's Encrypt, jest wyzwanie DNS, które możemy wywołać za pośrednictwem Preferowane wyzwania = dns flaga…

Tak więc, aby wygenerować certyfikat wieloznaczny dla domeny * .example.com, uruchamiasz poniższe polecenia:

sudo certbot certonly --manual --preferred-challenge = dns --email [email protected] --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -d * .example. com

Powyższe opcje poleceń są wyjaśnione poniżej:

  • pewnie: Uzyskaj lub odnów certyfikat, ale nie instaluj
  • -podręcznik: Uzyskaj certyfikaty w sposób interaktywny
  • -Preferowane wyzwania = dns: Użyj DNS do uwierzytelnienia własności domeny
  • -serwer: Określ punkt końcowy, który ma zostać użyty do wygenerowania
  • -zgadzam się: Zaakceptuj warunki abonenta serwera ACME
  • -re: Nazwa domeny, dla której mają być dostarczane certyfikaty

Po wykonaniu powyższego polecenia Let's Encrypt udostępni ciąg tekstowy, aby dodać rekord tekstowy do wpisu DNS…

Przykład:

Zapisywanie dziennika debugowania w /var/log/letsencrypt/letsencrypt.log Wybrane wtyczki: instrukcja Authenticator, Instalator Brak ---------------------------- -------------------------------------------------- - Czy byłbyś skłonny udostępnić swój adres e-mail Electronic Frontier Foundation, partnerowi założycielowi projektu Let's Encrypt i organizacji non-profit, która rozwija Certbot? Chcielibyśmy wysłać Ci wiadomość e-mail o EFF i naszej pracy nad szyfrowaniem sieci, ochroną jej użytkowników i ochroną praw cyfrowych. -------------------------------------------------- ----------------------------- (T) es / (N) o: y Uzyskanie nowego certyfikatu Wykonanie następujących wyzwań: dns -01 wyzwanie dla example.com ------------------------------------------- ------------------------------------ UWAGA: IP tego komputera będzie publicznie rejestrowane jako żądanie ten certyfikat. Jeśli używasz certbota w trybie ręcznym na maszynie, która nie jest Twoim serwerem, upewnij się, że zgadzasz się z tym. Czy zgadzasz się, że Twoje IP jest rejestrowane? -------------------------------------------------- ----------------------------- (T) es / (N) o: y ---------- -------------------------------------------------- ------------------- Wdróż rekord DNS TXT pod nazwą _acme-challenge.example.com z następującą wartością: x4MrZ6y-JqFJQRmq_lGi9ReRQHPa1aTC9J2O7wDKzq8 Przed kontynuowaniem sprawdź, czy rekord jest rozmieszczony.

Przejdź do portalu dostawcy DNS i dodaj rekord tekstowy dla powyższego ciągu i zapisz…

Poczekaj kilka minut, zanim przejdziesz dalej z monitu… Niektórzy dostawcy DNS próbują rozpowszechniać zmiany, więc może to zależeć od platformy Twojego dostawcy…

Po zmianach powyżej i Let's encrypt jest w stanie potwierdzić, że jesteś właścicielem domeny, powinieneś zobaczyć pomyślny komunikat, jak poniżej:

WAŻNE UWAGI: - Gratulacje! Twój certyfikat i łańcuch zostały zapisane pod adresem: /etc/letsencrypt/live/example.com/fullchain.pem Twój plik klucza został zapisany pod adresem: /etc/letsencrypt/live/example.com/privkey.pem Twój certyfikat wygaśnie w dniu 2020-01-09. Aby w przyszłości uzyskać nową lub ulepszoną wersję tego certyfikatu, po prostu ponownie uruchom certbot. Aby odnowić * wszystkie * certyfikaty w sposób nieinteraktywny, uruchom „certbot renew” - poświadczenia Twojego konta zostały zapisane w katalogu konfiguracyjnym Certbot w / etc / letsencrypt. Powinieneś teraz wykonać bezpieczną kopię zapasową tego folderu. Ten katalog konfiguracyjny będzie również zawierał certyfikaty i klucze prywatne uzyskane przez Certbot, więc idealne jest regularne tworzenie kopii zapasowych tego folderu. - Jeśli podoba Ci się Certbot, rozważ wsparcie naszej pracy poprzez: Darowizna dla ISRG / Let's Encrypt: https://letsencrypt.org/donate Darowizna dla EFF: https://eff.org/donate-le 

Że należy to zrobić!

Certyfikat wieloznaczny jest teraz wygenerowany i gotowy do użycia…

Aby sprawdzić, czy certyfikat jest gotowy, uruchom poniższe polecenia:

certyfikaty sudo certbot

Powinien wyświetlić podobny ekran, jak poniżej:

Znaleziono następujące certyfikaty: Nazwa certyfikatu: example.com Domeny: * .example.com Data wygaśnięcia: 2020-01-05 07: 48: 04 + 00: 00 (WAŻNY: 85 dni) Ścieżka certyfikatu: / etc / letsencrypt / live /example.com/fullchain.pem Ścieżka klucza prywatnego: /etc/letsencrypt/live/example.com/privkey.pem 

Wszystko gotowe!

Teraz certyfikaty Let's Encrypt są ważne przez 90 dni… Będziesz chciał skonfigurować zadanie crob, aby zautomatyzować proces odnawiania… Aby to zrobić, otwórz crontab i dodaj poniższy wpis:

sudo crontab -e

Następnie dodaj poniższy wiersz i zapisz…

0 1 * * * / usr / bin / certbot renew >> /var/log/letsencrypt/renew.log

Zapisz i gotowe!

Krok 2: Zainstaluj Nginx

Jeśli nie masz jeszcze zainstalowanego serwera HTTP Nginx, wykonaj poniższe czynności, aby pobrać i zainstalować go z repozytorium biurowego.

Możesz pobrać najnowszą stabilną wersję NGINX z NGINX PPA na Launchpad.

Uruchom poniższe polecenia, aby uzyskać najnowszą stabilną wersję z Nginx PPA.

sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa: nginx / stable sudo apt-get update sudo apt-get install nginx

Po zainstalowaniu Nginx uruchom poniższe polecenia, aby sprawdzić zainstalowaną wersję

sudo nginx -v

Powinieneś zobaczyć podobne linie, jak poniżej:

Wynik: Wersja nginx: nginx / 1.16.1

Krok 3: Pobierz i skompiluj Brotli

W tym momencie powinieneś mieć zainstalowany Let's Encrypt Wildcard SSL, a także Nginx.

Następnym krokiem jest budowanie ngx_brotli moduł dla Nginx jako moduł dynamiczny.

Aby to zadziałało, musisz skompilować Brotli przy użyciu zainstalowanej prawidłowej wersji Nginx. Z naszego testu powyżej masz wersję Nginx 1.16.1 więc będziemy musieli skompilować moduł ngx_brotli dla tej konkretnej wersji.

Najpierw zainstaluj wymagane biblioteki, uruchamiając poniższe polecenia.

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

Następnie pobierz wersję Nginx, która pasuje do aktualnie zainstalowanej wersji. Następnie wyodrębnij go za pomocą poniższych poleceń:

cd ~ / wget https://nginx.org/download/nginx-1.16.1.tar.gz tar zxvf nginx-1.16.1.tar.gz

Po wyodrębnieniu przejdź i sklonuj ngx_brotli moduł z Github za pomocą poniższych poleceń:

cd ~ / git clone https://github.com/eustas/ngx_brotli.git cd ~ / ngx_brotli Aktualizacja modułu podrzędnego git --init

Przejdź do folderu nginx-1.16.1 w swoim katalogu domowym.

cd ~ / nginx-1.16.1

Następnie skompiluj ngx_brotli jako moduł dynamiczny, uruchamiając poniższe polecenia. Następnie skopiuj go do standardowego katalogu modułów Nginx pod adresem / etc / nginx / modules.

./ configure --with -atible --add-dynamic-module =… / ngx_brotli stwórz moduły sudo cp objs / *. so / etc / nginx / modules-available lub sudo cp objs / *. so / usr / share / nginx / moduły

Lista plików w formacie / etc / nginx / modules-available i zobaczysz

ngx_http_brotli_filter_module.so ngx_http_brotli_static_module.so

Krok 4: Skonfiguruj Nginx

W tym momencie jesteśmy gotowi do załadowania modułu ngx_brotli.

Otwórz domyślny plik nginx.conf i załaduj dwa właśnie skompilowane moduły.

sudo nano /etc/nginx/nginx.conf

Następnie dodaj następujące dwie dyrektywy u góry pliku, aby załadować nowe moduły Brotli.

moduły load_module / ngx_http_brotli_filter_module.so; moduły load_module / ngx_http_brotli_static_module.so;

Twój nginx.conf plik powinien wyglądać podobnie do tego:

moduły load_module / ngx_http_brotli_filter_module.so; moduły load_module / ngx_http_brotli_static_module.so; dane www użytkownika; work_processes auto; pid /run/nginx.pid; dołącz /etc/nginx/modules-enabled/*.conf; zdarzenia worker_connections 768; # multi_accept on;  http … 

Następnie uruchom test Nginx, aby sprawdzić, czy wystąpiły jakieś błędy.

sudo nginx -t

Powinieneś otrzymać podobne linie, jak pokazano poniżej, jeśli wszystko się powiedzie.

Wynik: nginx: składnia pliku konfiguracyjnego /etc/nginx/nginx.conf jest prawidłowa nginx: plik konfiguracyjny /etc/nginx/nginx.conf test powiódł się 

To wszystko!

Jeśli chcesz używać Brotli z plikami konfiguracyjnymi hosta wirtualnego, użyj poniższego przykładu:

serwer nasłuchuj 80; nazwa_serwera example.com; return 301 https: // $ nazwa_serwera $ request_uri;  serwer nasłuchiwanie 443 ssl http2; nazwa_serwera example.com; ssl_certificate /etc/letsencrypt/example.com/fullchain.cer; ssl_certificate_key /etc/letsencrypt/example.com/example.com.key; brotli on; brotli_static on; brotli_types *;  

Uruchom ponownie Nginx

sudo systemctl przeładuj nginx.service

Że należy to zrobić!

Wniosek:

Ten post pokazał, jak skonfigurować serwer HTTP Nginx z Brotli, aby obsługiwał szybką kompresję. Jeśli znajdziesz jakikolwiek błąd powyżej, użyj poniższego formularza komentarza, aby go zgłosić.

Dzięki,




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux