Povolte HTTP/2 v Nginx na Ubuntu 16.04

HTTP/2 je nová verze dnes již zastaralého protokolu HTTP/1.1, který byl standardizován již v roce 1999. Od té doby se na webu hodně změnilo. Naše aplikace jsou složitější, než byly dříve, takže abychom se s tím vyrovnali, bylo nutné změnit základní transportní protokol. Nejdůležitější na HTTP/2 je, že zrychlí vaši webovou stránku pro koncové uživatele.

Stručně řečeno, HTTP/2 přidává 5 klíčových funkcí:

  • Jediné, trvalé připojení
  • Multiplexování
  • Komprese záhlaví
  • Prioritizace zdrojů
  • Zabezpečuje transportní vrstvu (platí pouze pro prohlížeče)

Vysvětlení všech těchto funkcí je mimo rozsah tohoto návodu, ale pokud se chcete do tohoto tématu ponořit hlouběji, mohu doporučit výňatek z knihy High Performance Browser Networking – HTTP/2 úryvek .

V této příručce nainstalujeme nejnovější stabilní verzi Nginx na Ubuntu 16.04 (Xenial), vygenerujeme certifikát SSL s vlastním podpisem, povolíme protokol HTTP/2 v Nginx a nainstalujeme textový prohlížeč, který elinksbude fungovat jako klient HTTP.

Nainstalujte Nginx

Chcete-li nainstalovat nejnovější stabilní verzi Nginx, musíme vydat několik příkazů:

  1. Musíme si stáhnout veřejný klíč PGP Nginx používaný k podepisování balíčků a úložišť a přidat jej do svazku klíčů, který používá správce balíčků k ověření pravosti balíčků stažených z úložiště.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Odstraňte klíč PGP ze systému souborů:

    rm nginx_signing.key
    
  3. Přidat nové úložiště

    printf "deb http://nginx.org/packages/ubuntu/ xenial nginx \ndeb-src http://nginx.org/packages/ubuntu/ xenial nginx \n" >> /etc/apt/sources.list.d/nginx.list
    
  4. Aktualizujte svůj seznam balíčků a nainstalujte Nginx:

    apt update && apt install nginx -y
    
  5. K ověření verze Nginx můžeme použít následující:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Pokud vše půjde dobře, měli byste 1.10.xpři spuštění nginx -vpříkazu vidět vzor jako na výstupu .

Certifikát s vlastním podpisem a HTTP/2

Although HTTP/2 spec doesn’t force browsers to implement HTTP/2 over TLS, all major browsers decided to only implement HTTP/2 over TLS, but not any TLS version, only TLS 1.2 or higher.

Chystáme se vytvořit certifikáty s vlastním podpisem pro fiktivní example.comdoménu, pro produkci potřebujete platnou doménu a použijte důvěryhodnou CA.

  1. Vygenerovat soukromý klíč:

    openssl genrsa -aes128 -out example.com.key 2048
    

    Po spuštění tohoto příkazu budete muset zadat heslo 2krát. Protože jsou přístupové fráze nepříjemné, odstraníme je.

  2. Odebrat přístupovou frázi ze soukromého klíče:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Generovat žádost o podpis certifikátu (CSR):

    openssl req -new -sha256 -key example.com.key -out cert-request.csr 
    

    We are creating single-domain certificate so we need to set common-name field equal to example.com domain

  4. Vytvořit certifikát:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Seřadit certifikát a soukromý klíč:

    mkdir -p /etc/ssl/testing/private && mkdir /etc/ssl/testing/certs
    mv example.com.key /etc/ssl/testing/private && mv example.com.crt /etc/ssl/testing/certs
    
  6. Vytvořte virtuální hostitelské adresáře nginx

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Poté spusťte nano /etc/nginx/nginx.confa najděte směrnici include /etc/nginx/conf.d/*.conf;. Pod tuto direktivu přidejte include /etc/nginx/sites-enabled/*;Uložit ( CTRL+O ) a poté ukončete ( CTRL+X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Vytvořte soubor s názvem example.com.confuvnitř /etc/nginx/sites-availableadresáře pomocí tohoto příkazu nano /etc/nginx/sites-available/example.com.confa zkopírujte/vložte následující kód:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com;
        return 301 https://$host$request_uri;
    }
    server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name example.com;
        root /var/www/html;
        index index.nginx-debian.html;
    
        ssl_certificate /etc/ssl/testing/certs/example.com.crt;
        ssl_certificate_key /etc/ssl/testing/private/example.com.key;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
        ssl_prefer_server_ciphers on;
    }
    

    Gratulujeme, nyní máte webový server s povoleným HTTP/2 . Přidáním http2parametru do listendirektivy uvnitř virtuálního hostitele HTTPS získáte podporu HTTP/2 .

  9. Vytvořte symbolický odkaz pro /etc/nginx/sites-available/example.com.confpomocí tohoto příkazu:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Syntaxe testovací konfigurace

    nginx -t
    
  11. Chcete-li použít změny, restartujte Nginx:

    systemctl restart nginx
    
  12. Přidejte example.comdoménu do /etc/hostssouboru

    echo '127.0.0.1    example.com' >> /etc/hosts
    

K otestování vašeho virtuálního hostitele potřebujeme textový prohlížeč – elinks.

  1. Chcete-li nainstalovat elinks, použijte následující příkaz:

    apt install elinks
    
  2. Chcete-li otestovat example.comspuštění virtuálního hostitele:

    elinks https://example.com
    
  3. Pro ukončení prohlížeče elinks stiskněte q na klávesnici a poté Enter .

Test HTTP/2

Chcete-li zjistit, jaké protokoly server inzeruje, je nejjednodušší použít opensslsadu nástrojů.

    openssl s_client -connect example.com:443 -nextprotoneg ''

Ve výstupu tohoto příkazu byste měli vidět něco takového:

    CONNECTED(00000003)
    Protocols advertised by server: h2, http/1.1      

Chcete-li vidět HTTP/2 v akci, můžete použít nástroje pro vývojáře prohlížeče. Protokol HTTP/2 je označen buď pomocí h2nebo HTTP/2.0identifikátorů. Otevřete panel sítě v nástrojích pro vývojáře a obnovte stránku.

Závěr

Nyní byste si měli být vědomi toho, jak „snadné“ je povolit HTTP/2 v konfiguraci Nginx, ale to není celá část celkového obrazu. Nejprve byste se měli zamyslet nad povolením TLS/SSL na vašem serveru se silnými šifrovacími sadami a ujistit se, že nepoužíváte šifry na černé listině . Teprve po povolení silného TLS/SSL na vašem serveru můžete začít přemýšlet o povolení HTTP/2 .

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