Į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ą .


Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Kaip nustatyti neprižiūrimus atnaujinimus Debian 9 (Stretch)

Naudojate kitą sistemą? Jei perkate Debian serverį, visada turėtumėte turėti naujausius saugos pataisymus ir naujinimus, nesvarbu, ar miegate, ar ne

Kaip įdiegti ir konfigūruoti PHP 7.0 arba PHP 7.1 Ubuntu 16.04

Kaip įdiegti ir konfigūruoti PHP 7.0 arba PHP 7.1 Ubuntu 16.04

PHP ir susiję paketai yra dažniausiai naudojami komponentai diegiant žiniatinklio serverį. Šiame straipsnyje sužinosime, kaip nustatyti PHP 7.0 arba PHP 7.1 o

Nustatykite savo DNS serverį Debian / Ubuntu

Nustatykite savo DNS serverį Debian / Ubuntu

Šiame vadove paaiškinama, kaip nustatyti DNS serverį naudojant Bind9 sistemoje Debian arba Ubuntu. Visame straipsnyje atitinkamai pakeiskite savo-domeno-vardas.com. Prie th

Nustatykite „Red5 Media Server“ Ubuntu 16.04

Nustatykite „Red5 Media Server“ Ubuntu 16.04

Naudojate kitą sistemą? „Red5“ yra atvirojo kodo medijos serveris, įdiegtas „Java“, leidžiantis paleisti „Flash“ kelių vartotojų programas, tokias kaip tiesioginis srautas.

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Sukompiliuokite ir įdiekite „Nginx“ naudodami „PageSpeed“ modulį „Debian 8“.

Šiame straipsnyje pamatysime, kaip sukompiliuoti ir įdiegti pagrindinę Nginx liniją iš oficialių Nginx šaltinių naudojant PageSpeed ​​modulį, kuris leidžia

Kaip įdiegti „Vanilla Forum“ Ubuntu 16.04

Kaip įdiegti „Vanilla Forum“ Ubuntu 16.04

Naudojate kitą sistemą? Vanilla forumas yra atvirojo kodo forumo programa, parašyta PHP. Tai visiškai pritaikoma, paprasta naudoti ir palaiko išorinę

Kaip įdiegti „Kanboard“ Ubuntu 18.04 LTS

Kaip įdiegti „Kanboard“ Ubuntu 18.04 LTS

Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti

Kaip įdiegti „Kanboard“ „Debian 9“.

Kaip įdiegti „Kanboard“ „Debian 9“.

Naudojate kitą sistemą? Įvadas Kanboard yra nemokama atvirojo kodo projektų valdymo programinė įranga, skirta palengvinti ir vizualizuoti

Kaip įdiegti Gitea Debian 9

Kaip įdiegti Gitea Debian 9

Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina Git. Gitea parašyta golangu ir yra

Kaip įdiegti „Gitea“ Ubuntu 18.04

Kaip įdiegti „Gitea“ Ubuntu 18.04

Naudojate kitą sistemą? Gitea yra alternatyvi atvirojo kodo, savarankiškai priglobta versijų valdymo sistema, kurią maitina git. Gitea parašyta golangu ir yra

Įdiekite „Lynis“ „Debian 8“.

Įdiekite „Lynis“ „Debian 8“.

Įvadas Lynis yra nemokama atvirojo kodo sistemos audito priemonė, kurią naudoja daugelis sistemų administratorių, kad patikrintų vientisumą ir sustiprintų savo sistemas. aš

Kaip įdiegti Thelia 2.3 Debian 9

Kaip įdiegti Thelia 2.3 Debian 9

Naudojate kitą sistemą? Thelia yra atvirojo kodo įrankis, skirtas kurti el. verslo svetaines ir valdyti PHP parašytą internetinį turinį. Thelia šaltinio kodas i

Kaip įdiegti „Microweber“ „CentOS 7“.

Kaip įdiegti „Microweber“ „CentOS 7“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

„Microweber“ diegimas „Ubuntu 16.04“.

„Microweber“ diegimas „Ubuntu 16.04“.

Naudojate kitą sistemą? „Microweber“ yra atvirojo kodo „drag and drop“ TVS ir internetinė parduotuvė. „Microweber“ šaltinio kodas yra „GitHub“. Šis vadovas jums parodys

Kaip įdiegti dotCMS Ubuntu 16.04

Kaip įdiegti dotCMS Ubuntu 16.04

Naudojate kitą sistemą? DotCMS yra atvirojo kodo, įmonės lygio turinio valdymo sistema, parašyta Java. Jame yra beveik visos reikalingos funkcijos t

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Kaip įdiegti „BigTree CMS“ Fedora 26 LAMP VPS

Naudojate kitą sistemą? BigTree CMS 4.2 yra greita ir lengva, nemokama ir atviro kodo, įmonės lygio turinio valdymo sistema (TVS), turinti platų

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

„Minecraft“ serverių tinklo sukūrimas naudojant „BungeeCord“ „Debian 8“, „Debian 9“ arba „CentOS 7“

Ko jums reikia Vultr VPS su mažiausiai 1 GB RAM. SSH prieiga (su root / administratoriaus teisėmis). 1 veiksmas: „BungeeCord“ diegimas Pirmiausia

„Docker CE“ diegimas „Ubuntu 16.04“.

„Docker CE“ diegimas „Ubuntu 16.04“.

Naudojate kitą sistemą? Docker yra programa, leidžianti diegti programas, kurios vykdomos kaip konteineriai. Tai buvo parašyta populiarioje Go programoje

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Kaip įdiegti Golang 1.8.3 CentOS 7, Ubuntu 16.04 ir Debian 9

Golang yra programavimo kalba, kurią sukūrė Google. Dėl savo universalumo, paprastumo ir patikimumo Golangas tapo vienu populiariausių

„Dirty Cow Exploit“ pataisymas „CentOS“.

„Dirty Cow Exploit“ pataisymas „CentOS“.

Kas yra purvina karvė (CVE-2016-5195)? „Dirty Cow“ pažeidžiamumas išnaudojamas „Linux“ apdorojant kodą. Tai leidžia neprivilegijuotam vartotojui gai

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.

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.

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.

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į