Įgalinkite HTTP/2 „Nginx“ Ubuntu 16.04 versijoje

HTTP/2 yra nauja dabar jau pasenusio HTTP/1.1 protokolo, kuris buvo standartizuotas dar 1999 m., versija. Nuo to laiko žiniatinklyje daug kas pasikeitė. Mūsų programos yra sudėtingesnės nei anksčiau, todėl norint su tuo susidoroti, reikėjo pakeisti pagrindinį transportavimo protokolą. Svarbiausias HTTP/2 dalykasyra tai, kad jis paspartins jūsų tinklalapį galutiniams vartotojams.

Trumpai tariant, HTTP/2 prideda 5 pagrindines funkcijas:

  • Vienas, nuolatinis ryšys
  • Multipleksavimas
  • Antraštės suspaudimas
  • Išteklių prioritetų nustatymas
  • Apsaugo transportavimo sluoksnį (galioja tik naršyklėms)

Visų šių funkcijų paaiškinimas nepatenka į šios mokymo programos taikymo sritį, bet jei norite įsigilinti į šią temą, galiu rekomenduoti ištrauką iš High Performance Browser Networking knygos – HTTP/2 ištrauka .

Šiame vadove ketiname įdiegti naujausią stabilią Nginx versiją Ubuntu 16.04 (Xenial), sugeneruoti savarankiškai pasirašytą SSL sertifikatą, įjungti HTTP/2 protokolą Nginx ir įdiegti tekstinę naršyklę, elinkskuri veiktų kaip HTTP klientas.

Įdiekite „Nginx“.

Norėdami įdiegti naujausią stabilią Nginx versiją, turime išduoti keletą komandų:

  1. Turime atsisiųsti Nginx viešąjį PGP raktą, naudojamą paketams ir saugykloms pasirašyti, ir įtraukti jį į raktų žiedą, kurį naudoja paketų tvarkytuvė, kad patikrintume iš saugyklos atsisiųstų paketų autentiškumą.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Ištrinkite PGP raktą iš failų sistemos:

    rm nginx_signing.key
    
  3. Pridėti naują saugyklą

    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. Atnaujinkite paketų sąrašą ir įdiekite „Nginx“:

    apt update && apt install nginx -y
    
  5. Norėdami patikrinti Nginx versiją, galime naudoti šiuos veiksmus:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Jei viskas klostosi gerai 1.10.x, vykdydami nginx -vkomandą turėtumėte matyti šabloną, panašų į išvestį .

Savarankiškai pasirašytas sertifikatas ir 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.

Mes ketiname sukurti savarankiškai pasirašytus sertifikatus išgalvotam example.comdomenui, gamybai jums reikia galiojančio domeno ir naudoti patikimą CA.

  1. Sukurti privatų raktą:

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

    Paleidę šią komandą turėsite 2 kartus įvesti slaptafrazę. Kadangi slaptafrazės erzina, mes jas pašalinsime.

  2. Pašalinti slaptafrazę iš privataus rakto:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Sukurti sertifikato pasirašymo užklausą (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. Sukurti sertifikatą:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Išrūšiuoti sertifikatą ir privatųjį raktą:

    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. Sukurkite „nginx“ virtualaus pagrindinio kompiuterio katalogus

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Tada paleiskite nano /etc/nginx/nginx.confir suraskite direktyvą include /etc/nginx/conf.d/*.conf;. Po šia direktyva pridėkite include /etc/nginx/sites-enabled/*;Išsaugoti ( CTRL+O ) ir išeikite ( CTRL+X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Sukurti failą pavadinimu example.com.confviduje /etc/nginx/sites-availablekataloge su šią komandą nano /etc/nginx/sites-available/example.com.confir kopijuoti / įklijuoti šį kodą:

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

    Sveikiname, dabar turite žiniatinklio serverį, kuriame įgalintas HTTP/2 . Pridėjus http2parametrą prie listendirektyvos HTTPS virtualiajame pagrindiniame kompiuteryje, gausite HTTP/2 palaikymą.

  9. Sukurkite simbolinę nuorodą /etc/nginx/sites-available/example.com.confnaudodami šią komandą:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Patikrinkite konfigūracijos sintaksę

    nginx -t
    
  11. Iš naujo paleiskite „Nginx“, kad pritaikytumėte pakeitimus:

    systemctl restart nginx
    
  12. Pridėti example.comdomeną prie /etc/hostsfailo

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

Norėdami išbandyti savo virtualųjį prieglobą, mums reikia tekstinės naršyklės - elinks.

  1. Norėdami įdiegti elinks, naudokite šią komandą:

    apt install elinks
    
  2. Norėdami išbandyti example.comvirtualaus pagrindinio kompiuterio paleidimą:

    elinks https://example.com
    
  3. Norėdami išeiti iš „Elinks“ naršyklės, paspauskite klaviatūros klavišą q ir Enter .

Išbandykite HTTP/2

Norėdami pamatyti, kokius protokolus reklamuoja serveris, paprasčiausias būdas yra naudoti opensslįrankių rinkinį.

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

Šios komandos išvestyje turėtumėte pamatyti kažką panašaus į tai:

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

Norėdami pamatyti HTTP/2 veikimą, galite naudoti naršyklės kūrėjo įrankius. HTTP/2 protokolas nurodomas h2arba HTTP/2.0identifikatoriais. Dev-tools atidarykite tinklo skydelį ir atnaujinkite puslapį.

Išvada

Dabar turėtumėte žinoti, kaip „lengva“ įjungti HTTP/2 „Nginx“ konfigūracijoje, tačiau tai nėra visa bendro vaizdo dalis. Pirmiausia turėtumėte pagalvoti apie TLS/SSL įgalinimą savo serveryje su stipriais šifrų rinkiniais ir įsitikinkite, kad nenaudojate šifrų, įtrauktų į juodąjį sąrašą . Tik įjungę stiprų TLS/SSL savo serveryje, galite pradėti galvoti apie HTTP/2 įjungimą .

Palikti komentarą

Mašinų augimas: AI pritaikymas realiame pasaulyje

Mašinų augimas: AI pritaikymas realiame pasaulyje

Dirbtinis intelektas nėra ateityje, jis čia, dabartyje Šiame tinklaraštyje Skaitykite, kaip dirbtinio intelekto programos paveikė įvairius sektorius.

DDOS atakos: trumpa apžvalga

DDOS atakos: trumpa apžvalga

Ar taip pat esate DDOS atakų auka ir esate sumišęs dėl prevencijos metodų? Perskaitykite šį straipsnį, kad išspręstumėte savo užklausas.

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Ar kada nors susimąstėte, kaip įsilaužėliai uždirba pinigų?

Galbūt girdėjote, kad įsilaužėliai uždirba daug pinigų, bet ar kada susimąstėte, kaip jie uždirba tokius pinigus? padiskutuokime.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Revoliuciniai „Google“ išradimai, kurie palengvins jūsų gyvenimą.

Ar norite pamatyti revoliucinius „Google“ išradimus ir kaip šie išradimai pakeitė kiekvieno žmogaus gyvenimą šiandien? Tada skaitykite tinklaraštį, kad pamatytumėte „Google“ išradimus.

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Penktadienio esminiai dalykai: kas atsitiko AI varomiems automobiliams?

Savavaledžių automobilių koncepcija, kuri išvažiuotų į kelius su dirbtinio intelekto pagalba, yra svajonė, kurią jau kurį laiką svajojame. Tačiau nepaisant kelių pažadų, jų niekur nematyti. Skaitykite šį tinklaraštį, kad sužinotumėte daugiau…

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Technologinis išskirtinumas: tolima žmogaus civilizacijos ateitis?

Kadangi mokslas sparčiai vystosi, perimdamas daug mūsų pastangų, taip pat didėja rizika, kad pateksime į nepaaiškinamą singuliarumą. Skaitykite, ką mums gali reikšti išskirtinumas.

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Didžiųjų duomenų atskaitos architektūros sluoksnių funkcijos

Skaitykite tinklaraštį, kad paprasčiausiai sužinotumėte apie skirtingus didžiųjų duomenų architektūros sluoksnius ir jų funkcijas.

Duomenų saugojimo raida – infografika

Duomenų saugojimo raida – infografika

Duomenų saugojimo metodai gali būti tobulinami nuo pat Duomenų gimimo. Šiame tinklaraštyje, remiantis infografika, aprašoma duomenų saugojimo raida.

6 nuostabūs išmaniųjų namų įrenginių privalumai

6 nuostabūs išmaniųjų namų įrenginių privalumai

Šiame skaitmeniniu būdu pagrįstame pasaulyje išmanieji namų įrenginiai tapo svarbia gyvenimo dalimi. Štai keletas nuostabių išmaniųjų namų įrenginių privalumų, kaip jie daro mūsų gyvenimą vertą gyventi ir paprastesnį.

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

„macOS Catalina 10.15.4“ priedo atnaujinimas kelia daugiau problemų, nei sprendžia

Neseniai „Apple“ išleido „macOS Catalina 10.15.4“ priedą, skirtą problemoms išspręsti, tačiau atrodo, kad dėl atnaujinimo kyla daugiau problemų, dėl kurių „Mac“ įrenginiai blokuojami. Norėdami sužinoti daugiau, perskaitykite šį straipsnį