Aktivizo HTTP/2 në Nginx në Ubuntu 16.04

HTTP/2 është versioni i ri i protokollit tashmë të vjetëruar HTTP/1.1 i cili u standardizua në vitin 1999. Shumëçka në ueb ka ndryshuar që atëherë. Aplikacionet tona janë më komplekse sesa ishin kthyer, kështu që për të përballuar këtë, ishte i nevojshëm ndryshimi në protokollin themelor të transportit. Gjëja më e rëndësishme në lidhje me HTTP/2 është se do ta bëjë faqen tuaj të internetit më të shpejtë për përdoruesit përfundimtarë.

Shkurtimisht, HTTP/2 shton 5 veçori kryesore:

  • Lidhje e vetme, e vazhdueshme
  • Multipleksimi
  • Kompresimi i kokës
  • Prioritizimi i burimeve
  • Siguron shtresën e transportit (e vlefshme vetëm për shfletuesit)

Shpjegimi i të gjitha këtyre veçorive është jashtë qëllimit të këtij tutoriali, por nëse doni të gërmoni më thellë në këtë temë, unë mund të rekomandoj fragment nga libri "Rrjetëzimi i shfletuesit me performancë të lartë" - fragment HTTP/2 .

Në këtë udhëzues ne do të instalojmë versionin më të fundit të qëndrueshëm të Nginx në Ubuntu 16.04 (Xenial), do të gjenerojmë Certifikatë SSL të vetë-nënshkruar, do të aktivizojmë protokollin HTTP/2 në Nginx dhe do të instalojmë shfletuesin e bazuar në tekst për elinkstë vepruar si klient HTTP.

Instaloni Nginx

Për të instaluar versionin më të fundit të qëndrueshëm të Nginx, duhet të lëshojmë disa komanda:

  1. Ne duhet të shkarkojmë çelësin publik PGP Nginx të përdorur për nënshkrimin e paketave dhe depove dhe ta shtojmë atë në çelësin e përdorur nga menaxheri i paketave për të verifikuar vërtetësinë e paketave të shkarkuara nga depoja.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Fshini çelësin PGP nga sistemi i skedarëve:

    rm nginx_signing.key
    
  3. Shto një depo të re

    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. Përditësoni listën tuaj të paketave dhe instaloni Nginx:

    apt update && apt install nginx -y
    
  5. Për të verifikuar versionin Nginx, ne mund të përdorim sa vijon:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Nëse gjithçka shkon mirë, duhet të shihni modelin si 1.10.xnë dalje kur ekzekutoni nginx -vkomandën.

Certifikatë e vetë-nënshkruar dhe 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.

Ne do të krijojmë example.comcertifikata të vetë-nënshkruara për domenin imagjinar , për prodhimin ju duhet domeni i vlefshëm dhe përdorni CA të besuar.

  1. Gjeneroni çelësin privat:

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

    Pas ekzekutimit të kësaj komande, do t'ju duhet të futni frazën e kalimit 2 herë. Për shkak se frazat e kalimit janë të bezdisshme, ne do ta heqim atë.

  2. Hiq frazën e kalimit nga çelësi privat:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Krijo një kërkesë për nënshkrimin e certifikatës (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. Krijo certifikatë:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Rendit certifikatën dhe çelësin privat:

    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. Krijoni drejtoritë e hosteve virtuale nginx

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Pastaj vraponi nano /etc/nginx/nginx.confdhe gjeni një direktivë include /etc/nginx/conf.d/*.conf;. Nën këtë direktivë shtoni include /etc/nginx/sites-enabled/*;Save ( CTRL+O ) dhe më pas dilni ( CTRL+X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Krijo një skedar të quajtur example.com.confbrenda /etc/nginx/sites-availabledirektorisë me këtë komandë nano /etc/nginx/sites-available/example.com.confdhe kopjo/ngjit kodin e mëposhtëm:

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

    Urime, tani e keni serverin në internet të aktivizuar HTTP/2 . Shtimi i http2parametrit në listendirektivë brenda hostit virtual HTTPS do t'ju japë mbështetje për HTTP/2 .

  9. Krijo një lidhje simbolike për /etc/nginx/sites-available/example.com.confme këtë komandë:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Testoni sintaksën e konfigurimit

    nginx -t
    
  11. Rinisni Nginx për të aplikuar ndryshimet tuaja:

    systemctl restart nginx
    
  12. Shtoni example.comdomenin në /etc/hostsskedar

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

Për të testuar hostin tuaj virtual, ne kemi nevojë për shfletuesin e bazuar në tekst - elinks.

  1. Për të instaluar elinks përdorni komandën e mëposhtme:

    apt install elinks
    
  2. Për të testuar example.comekzekutimin e hostit tuaj virtual:

    elinks https://example.com
    
  3. Për të dalë nga shfletuesi elinks shtypni q në tastierë dhe më pas Enter .

Testoni HTTP/2

Për të parë se çfarë protokollesh reklamon serveri, mënyra më e lehtë është të përdorni opensslpaketën e veglave.

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

Në daljen e kësaj komande duhet të shihni diçka si kjo:

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

Për të parë HTTP/2 në veprim, mund të përdorni mjetet e zhvilluesit të shfletuesit. Protokolli HTTP/2 tregohet ose me h2ose me HTTP/2.0identifikues. Hapni panelin e rrjetit në mjetet e devijimit dhe rifreskoni faqen tuaj.

konkluzioni

Tani duhet të jeni të vetëdijshëm se sa "e lehtë" është të aktivizoni HTTP/2 në konfigurimin Nginx, por kjo nuk është e gjithë pjesa e pamjes së përgjithshme. Fillimisht duhet të mendoni për aktivizimin e TLS/SSL në serverin tuaj me paketa të forta shifrore dhe sigurohuni që nuk po përdorni shifra të listës së zezë . Vetëm pasi të keni aktivizuar TLS/SSL të fortë në serverin tuaj, mund të filloni të mendoni për aktivizimin e HTTP/2 .

Lëreni një koment

Ngritja e makinave: Aplikimet në botën reale të AI

Ngritja e makinave: Aplikimet në botën reale të AI

Inteligjenca Artificiale nuk është në të ardhmen, është këtu në të tashmen Në këtë blog Lexoni se si aplikacionet e inteligjencës artificiale kanë ndikuar në sektorë të ndryshëm.

Sulmet DDOS: Një përmbledhje e shkurtër

Sulmet DDOS: Një përmbledhje e shkurtër

A jeni edhe ju viktimë e Sulmeve DDOS dhe jeni konfuz në lidhje me metodat e parandalimit? Lexoni këtë artikull për të zgjidhur pyetjet tuaja.

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

A e keni pyetur ndonjëherë veten se si fitojnë para hakerët?

Ju mund të keni dëgjuar se hakerët fitojnë shumë para, por a keni menduar ndonjëherë se si i fitojnë ato para? Le te diskutojme.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Shpikjet revolucionare nga Google që do tju bëjnë të lehtë jetën tuaj.

Dëshironi të shihni shpikjet revolucionare nga Google dhe se si këto shpikje ndryshuan jetën e çdo njeriu sot? Më pas lexoni në blog për të parë shpikjet nga Google.

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

E Premte Thelbësore: Çfarë ndodhi me Makinat e drejtuara nga AI?

Koncepti i makinave vetë-drejtuese për të dalë në rrugë me ndihmën e inteligjencës artificiale është një ëndërr që e kemi prej kohësh. Por, pavarësisht nga disa premtime, ato nuk shihen askund. Lexoni këtë blog për të mësuar më shumë…

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Singulariteti teknologjik: Një e ardhme e largët e qytetërimit njerëzor?

Ndërsa Shkenca evoluon me një ritëm të shpejtë, duke marrë përsipër shumë nga përpjekjet tona, rriten edhe rreziqet për t'iu nënshtruar një Singulariteti të pashpjegueshëm. Lexoni, çfarë mund të thotë singulariteti për ne.

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Funksionalitetet e shtresave të arkitekturës së referencës së të dhënave të mëdha

Lexoni blogun për të njohur shtresat e ndryshme në arkitekturën e të dhënave të mëdha dhe funksionalitetet e tyre në mënyrën më të thjeshtë.

Evolucioni i ruajtjes së të dhënave - Infografik

Evolucioni i ruajtjes së të dhënave - Infografik

Metodat e ruajtjes së të dhënave kanë evoluar mund të jenë që nga lindja e të dhënave. Ky blog mbulon evolucionin e ruajtjes së të dhënave në bazë të një infografike.

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

6 Përfitimet e mahnitshme të të pasurit pajisje shtëpiake inteligjente në jetën tonë

Në këtë botë të drejtuar nga dixhitali, pajisjet inteligjente të shtëpisë janë bërë një pjesë thelbësore e jetës. Këtu janë disa përfitime të mahnitshme të pajisjeve shtëpiake inteligjente se si ato e bëjnë jetën tonë të vlefshme dhe më të thjeshtë.

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Përditësimi shtesë i macOS Catalina 10.15.4 po shkakton më shumë probleme sesa zgjidhja

Së fundmi Apple lëshoi ​​macOS Catalina 10.15.4 një përditësim shtesë për të rregulluar problemet, por duket se përditësimi po shkakton më shumë probleme që çojnë në bricking të makinerive mac. Lexoni këtë artikull për të mësuar më shumë