Iespējojiet HTTP/2 programmā Nginx Ubuntu 16.04

HTTP/2 ir novecojušā HTTP/1.1 protokola jaunā versija, kas tika standartizēta 1999. gadā. Kopš tā laika tīmeklī ir daudz kas mainījies. Mūsu lietojumprogrammas ir sarežģītākas, nekā tās bija atpakaļ, tāpēc, lai ar to tiktu galā, bija nepieciešamas izmaiņas pamatā esošajā transporta protokolā. Pats svarīgākais HTTP/2 ir tas, ka tas galalietotājiem padarīs jūsu tīmekļa lapu ātrāku.

Īsumā HTTP/2 pievieno 5 galvenās funkcijas:

  • Vienots, pastāvīgs savienojums
  • Multipleksēšana
  • Galvenes saspiešana
  • Resursu prioritāšu noteikšana
  • Nodrošina transporta slāni (derīgs tikai pārlūkprogrammām)

Visu šo funkciju izskaidrošana neietilpst šajā apmācībā, taču, ja vēlaties iedziļināties šajā tēmā, es varu ieteikt fragmentu no grāmatas High Performance Browser Networking — HTTP/2 fragments .

Šajā rokasgrāmatā mēs instalēsim jaunāko stabilo Nginx versiju operētājsistēmā Ubuntu 16.04 (Xenial), ģenerēsim pašparakstītu SSL sertifikātu, iespējosim HTTP/2 protokolu Nginx un instalēsim teksta pārlūkprogrammu, elinkslai tā darbotos kā HTTP klients.

Instalējiet Nginx

Lai instalētu jaunāko stabilo Nginx versiju, mums ir jāizdod dažas komandas:

  1. Mums ir jālejupielādē Nginx publiskā PGP atslēga, ko izmanto pakotņu un repozitoriju parakstīšanai, un jāpievieno tā atslēgu piekariņam, ko izmanto pakotņu pārvaldnieks, lai pārbaudītu no krātuves lejupielādēto pakotņu autentiskumu.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Izdzēsiet PGP atslēgu no failu sistēmas:

    rm nginx_signing.key
    
  3. Pievienojiet jaunu repozitoriju

    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. Atjauniniet pakotņu sarakstu un instalējiet Nginx:

    apt update && apt install nginx -y
    
  5. Lai pārbaudītu Nginx versiju, mēs varam izmantot šo:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Ja viss iet labi 1.10.x, palaižot nginx -vkomandu, izvadē vajadzētu redzēt līdzīgu modeli .

Pašparakstīts sertifikāts un 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.

Mēs izveidosim pašparakstītus sertifikātus izdomātam example.comdomēnam, lai ražotu, jums ir nepieciešams derīgs domēns un jāizmanto uzticama CA.

  1. Ģenerēt privāto atslēgu:

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

    Pēc šīs komandas palaišanas jums būs jāievada ieejas frāze 2 reizes. Tā kā ieejas frāzes ir kaitinošas, mēs tās noņemsim.

  2. Noņemt ieejas frāzi no privātās atslēgas:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Izveidot sertifikāta parakstīšanas pieprasījumu (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. Izveidot sertifikātu:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Kārtot sertifikātu un privāto atslēgu:

    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. Izveidojiet nginx virtuālo resursdatoru direktorijus

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Pēc tam palaidiet nano /etc/nginx/nginx.confun atrodiet direktīvu include /etc/nginx/conf.d/*.conf;. Zem šīs direktīvas pievienojiet include /etc/nginx/sites-enabled/*;Saglabāt ( CTRL+O ) un pēc tam aizveriet ( CTRL+X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Izveidot failu ar nosaukumu example.com.confiekšā /etc/nginx/sites-availabledirektorijā ar šo komandu nano /etc/nginx/sites-available/example.com.confun kopēt / ielīmēt šo kodu:

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

    Apsveicam! Tagad jums ir iespējots HTTP/2 tīmekļa serveris. Pievienojot http2parametru listendirektīvai HTTPS virtuālajā resursdatorā, jūs iegūsit HTTP/2 atbalstu.

  9. Izveidojiet simbolisku saiti /etc/nginx/sites-available/example.com.confar šo komandu:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Testa konfigurācijas sintakse

    nginx -t
    
  11. Restartējiet Nginx, lai lietotu izmaiņas:

    systemctl restart nginx
    
  12. Pievienojiet failam example.comdomēnu/etc/hosts

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

Lai pārbaudītu savu virtuālo resursdatoru, mums ir nepieciešama teksta pārlūkprogramma - elinks.

  1. Lai instalētu elinks, izmantojiet šādu komandu:

    apt install elinks
    
  2. Lai pārbaudītu example.comvirtuālā saimniekdatora darbību, veiciet tālāk norādītās darbības.

    elinks https://example.com
    
  3. Lai izietu no pārlūka elinks, nospiediet tastatūras taustiņu q un pēc tam Enter .

Pārbaudiet HTTP/2

Lai redzētu, kādus protokolus serveris reklamē, vienkāršākais veids ir izmantot opensslrīku komplektu.

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

Šīs komandas izvadē jums vajadzētu redzēt kaut ko līdzīgu šim:

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

Lai redzētu HTTP/2 darbību, varat izmantot pārlūkprogrammas izstrādātāju rīkus. HTTP/2 protokols tiek norādīts ar h2vai HTTP/2.0identifikatoriem. Atveriet tīkla paneli izstrādātāju rīkos un atsvaidziniet savu lapu.

Secinājums

Tagad jums vajadzētu zināt, cik "viegli" ir iespējot HTTP/2 Nginx konfigurācijā, taču tā nav visa kopējā attēla daļa. Vispirms jums vajadzētu padomāt par TLS/SSL iespējošanu savā serverī, izmantojot spēcīgus šifru komplektus, un pārliecinieties, ka neizmantojat melnajā sarakstā iekļautos šifrus . Tikai pēc spēcīga TLS/SSL iespējošanas savā serverī varat sākt domāt par HTTP/2 iespējošanu .

Atstājiet komentāru

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mašīnu pieaugums: AI reālās pasaules lietojumi

Mākslīgais intelekts nav nākotnē, tas ir šeit, tagadnē. Šajā emuārā lasiet, kā mākslīgā intelekta lietojumprogrammas ir ietekmējušas dažādas nozares.

DDOS uzbrukumi: īss pārskats

DDOS uzbrukumi: īss pārskats

Vai arī jūs esat DDOS uzbrukumu upuris un esat neizpratnē par profilakses metodēm? Izlasiet šo rakstu, lai atrisinātu savus jautājumus.

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Vai esat kādreiz domājis, kā hakeri pelna naudu?

Iespējams, esat dzirdējuši, ka hakeri pelna daudz naudas, bet vai esat kādreiz domājuši, kā viņi nopelna šādu naudu? pārrunāsim.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Google revolucionāri izgudrojumi, kas atvieglos jūsu dzīvi.

Vai vēlaties redzēt revolucionārus Google izgudrojumus un to, kā šie izgudrojumi mainīja katra cilvēka dzīvi mūsdienās? Pēc tam lasiet emuārā, lai redzētu Google izgudrojumus.

Piektdiena: kas notika ar AI vadītām automašīnām?

Piektdiena: kas notika ar AI vadītām automašīnām?

Pašpiedziņas automobiļu koncepcija izbraukt uz ceļiem ar mākslīgā intelekta palīdzību ir mūsu sapnis jau kādu laiku. Bet, neskatoties uz vairākiem solījumiem, tie nekur nav redzami. Lasiet šo emuāru, lai uzzinātu vairāk…

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Tehnoloģiskā singularitāte: cilvēces civilizācijas tāla nākotne?

Zinātnei strauji attīstoties, pārņemot lielu daļu mūsu pūļu, palielinās arī risks pakļaut sevi neizskaidrojamai singularitātei. Izlasiet, ko singularitāte varētu nozīmēt mums.

Lielo datu atsauces arhitektūras slāņu funkcijas

Lielo datu atsauces arhitektūras slāņu funkcijas

Lasiet emuāru, lai vienkāršākā veidā uzzinātu dažādus lielo datu arhitektūras slāņus un to funkcijas.

Datu glabāšanas evolūcija – infografika

Datu glabāšanas evolūcija – infografika

Datu uzglabāšanas metodes ir attīstījušās kopš datu dzimšanas. Šajā emuārā ir aprakstīta datu uzglabāšanas attīstība, pamatojoties uz infografiku.

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

6 brīnišķīgas priekšrocības, ko sniedz viedo mājas ierīču izmantošana mūsu dzīvē

Šajā digitālajā pasaulē viedās mājas ierīces ir kļuvušas par būtisku dzīves sastāvdaļu. Šeit ir daži pārsteidzoši viedo mājas ierīču ieguvumi, lai padarītu mūsu dzīvi dzīves vērtu un vienkāršāku.

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

MacOS Catalina 10.15.4 papildinājuma atjauninājums rada vairāk problēmu nekā to risināšana

Nesen Apple izlaida macOS Catalina 10.15.4 papildinājuma atjauninājumu, lai novērstu problēmas, taču šķiet, ka atjauninājums rada vairāk problēmu, kas izraisa Mac datoru bloķēšanu. Izlasiet šo rakstu, lai uzzinātu vairāk