Ota HTTP/2 käyttöön Nginxissä Ubuntu 16.04:ssä

HTTP/2 on uusi versio nyt vanhentuneesta HTTP/1.1-protokollasta, joka standardisoitiin jo vuonna 1999. Paljon on muuttunut verkossa sen jälkeen. Sovelluksemme ovat monimutkaisempia kuin ennen, joten sen ratkaisemiseksi taustalla olevaa siirtoprotokollaa oli muutettava. HTTP/2:ssa tärkeintäon, että se tekee verkkosivustasi nopeamman loppukäyttäjille.

Lyhyesti HTTP/2 lisää 5 avainominaisuutta:

  • Yksittäinen, jatkuva yhteys
  • Multipleksointi
  • Otsikon pakkaus
  • Resurssien priorisointi
  • Suojaa kuljetuskerroksen (vain selaimille)

Kaikkien näiden ominaisuuksien selittäminen ei kuulu tämän opetusohjelman piiriin, mutta jos haluat kaivaa aihetta syvemmälle, voin suositella ottetta High Performance Browser Networking -kirjasta - HTTP/2-ote .

Tässä oppaassa asennamme Nginxin uusimman vakaan version Ubuntu 16.04:ään (Xenial), luomme itse allekirjoitetun SSL-sertifikaatin, otamme käyttöön HTTP/2- protokollan Nginxissä ja asennamme tekstipohjaisen selaimen elinkstoimimaan HTTP-asiakkaana.

Asenna Nginx

Nginxin uusimman vakaan version asentamiseksi meidän on annettava useita komentoja:

  1. Meidän on ladattava Nginx-julkinen PGP-avain, jota käytetään pakettien ja tietovarastojen allekirjoittamiseen, ja lisättävä se avainrenkaaseen, jota paketinhallinta käyttää tarkistaakseen arkistosta ladattujen pakettien aitouden.

    wget https://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key
    
  2. Poista PGP-avain tiedostojärjestelmästä:

    rm nginx_signing.key
    
  3. Lisää uusi arkisto

    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äivitä pakettiluettelosi ja asenna Nginx:

    apt update && apt install nginx -y
    
  5. Nginx-version tarkistamiseksi voimme käyttää seuraavaa:

    nginx -v 
    # nginx version: nginx/1.10.1
    

    Jos kaikki menee hyvin, sinun pitäisi nähdä kuvio, kuten 1.10.xtulosteessa, kun suoritat nginx -vkomentoa.

Itse allekirjoitettu varmenne ja 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.

Aiomme luoda itse allekirjoitettuja varmenteita kuvitteelliselle example.comverkkotunnukselle, tuotantoa varten tarvitset kelvollisen verkkotunnuksen ja käytät luotettavaa CA:ta.

  1. Luo yksityinen avain:

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

    Tämän komennon suorittamisen jälkeen sinun on kirjoitettava tunnuslause 2 kertaa. Koska salasanat ovat ärsyttäviä, aiomme poistaa ne.

  2. Poista salasana yksityisestä avaimesta:

    openssl rsa -in example.com.key -out example.com.key
    
  3. Luo varmenteen allekirjoituspyyntö (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. Luo sertifikaatti:

    openssl x509 -req -days 365 -in cert-request.csr -signkey example.com.key -out example.com.crt
    
  5. Lajittele varmenne ja yksityinen avain:

    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. Tee nginx-virtuaaliisäntähakemistoja

    mkdir /etc/nginx/sites-available && mkdir /etc/nginx/sites-enabled
    
  7. Suorita sitten nano /etc/nginx/nginx.confja etsi ohje include /etc/nginx/conf.d/*.conf;. Lisää tämän ohjeen alle include /etc/nginx/sites-enabled/*;Tallenna ( CTRL+O ) ja sulje sitten ( CTRL+X ).

    ##
    # Virtual Hosts
    ##
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    
  8. Luo tällä komennolla tiedosto nimeltä hakemiston example.com.confsisällä ja kopioi/liitä seuraava koodi:/etc/nginx/sites-availablenano /etc/nginx/sites-available/example.com.conf

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

    Onnittelut, sinulla on nyt HTTP/2- yhteensopiva verkkopalvelin. http2Parametrin lisääminen listendirektiiviin HTTPS-virtuaaliisännässä antaa HTTP/2- tuen.

  9. Luo symbolinen linkki /etc/nginx/sites-available/example.com.conftällä komennolla:

    ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled
    
  10. Testaa kokoonpanon syntaksia

    nginx -t
    
  11. Ota muutokset käyttöön käynnistämällä Nginx uudelleen:

    systemctl restart nginx
    
  12. Lisää example.comverkkotunnus /etc/hoststiedostoon

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

Virtuaaliisäntäsi testaamiseen tarvitsemme tekstipohjaisen selaimen - elinks.

  1. Asenna elinks käyttämällä seuraavaa komentoa:

    apt install elinks
    
  2. Voit testata example.comvirtuaalisen isäntäajon seuraavasti:

    elinks https://example.com
    
  3. Poistuksesi elinks-selaimesta paina näppäimistön q ja sitten Enter .

Testaa HTTP/2

Helpoin tapa nähdä, mitä protokollia palvelin mainostaa, on käyttää openssltyökalupakkia.

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

Tämän komennon tulosteessa sinun pitäisi nähdä jotain tällaista:

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

Jos haluat nähdä HTTP/2 :n toiminnassa, voit käyttää selaimen kehittäjätyökaluja. HTTP/2- protokolla on merkitty joko tunnisteilla h2tai HTTP/2.0. Avaa verkkopaneeli dev-toolsissa ja päivitä sivusi.

Johtopäätös

Nyt sinun pitäisi olla tietoinen siitä, kuinka "helppoa" on ottaa HTTP/2 käyttöön Nginx-kokoonpanossa, mutta se ei ole koko osa kokonaiskuvaa. Ensin sinun tulee harkita TLS/SSL:n käyttöönottoa palvelimellasi vahvojen salauspakettien avulla ja varmistaa, että et käytä mustalla listalla olevia salauksia . Vasta kun olet ottanut vahvan TLS/SSL:n käyttöön palvelimellasi, voit alkaa miettiä HTTP/2:n käyttöönottoa .

Jätä kommentti

Koneiden nousu: tekoälyn todelliset sovellukset

Koneiden nousu: tekoälyn todelliset sovellukset

Tekoäly ei ole tulevaisuudessa, se tässä nykyisyydessä Tässä blogissa Lue kuinka tekoälysovellukset ovat vaikuttaneet eri sektoreihin.

DDOS-hyökkäykset: lyhyt katsaus

DDOS-hyökkäykset: lyhyt katsaus

Oletko myös DDOS-hyökkäysten uhri ja hämmentynyt ehkäisymenetelmistä? Lue tämä artikkeli ratkaistaksesi kysymyksesi.

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Oletko koskaan miettinyt, kuinka hakkerit ansaitsevat rahaa?

Olet ehkä kuullut, että hakkerit ansaitsevat paljon rahaa, mutta oletko koskaan miettinyt, kuinka he ansaitsevat tuollaista rahaa? keskustellaan.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Googlen vallankumouksellisia keksintöjä, jotka helpottavat elämääsi.

Haluatko nähdä Googlen vallankumouksellisia keksintöjä ja kuinka nämä keksinnöt muuttivat jokaisen ihmisen elämää nykyään? Lue sitten blogia nähdäksesi Googlen keksinnöt.

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Essential perjantai: Mitä tekoäly-ohjatuille autoille tapahtui?

Konsepti itseohjautuvista autoista lähteä tielle tekoälyn avulla on ollut haaveena jo jonkin aikaa. Mutta useista lupauksista huolimatta niitä ei näy missään. Lue tämä blogi saadaksesi lisätietoja…

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Teknologinen singulaarisuus: ihmissivilisaation kaukainen tulevaisuus?

Kun tiede kehittyy nopeasti ja ottaa haltuunsa suuren osan ponnisteluistamme, myös riskit altistaa itsemme selittämättömälle singulariteetille kasvavat. Lue, mitä singulaarisuus voisi tarkoittaa meille.

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Big Datan referenssiarkkitehtuurikerrosten toiminnot

Blogista saat tietää Big Data -arkkitehtuurin eri kerroksista ja niiden toiminnoista yksinkertaisimmalla tavalla.

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen tallennuksen evoluutio – Infografiikka

Tietojen säilytystavat ovat kehittyneet mahdollisesti Datan syntymästä lähtien. Tämä blogi käsittelee tiedon tallennuksen kehitystä infografian pohjalta.

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

6 uskomatonta etua älykkäiden kotilaitteiden käyttämisestä elämässämme

Tässä digitaalisessa maailmassa kodin älylaitteista on tullut tärkeä osa elämää. Tässä on muutamia älykkäiden kodin laitteiden hämmästyttäviä etuja, joiden avulla ne tekevät elämästämme elämisen arvoista ja yksinkertaisempaa.

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

macOS Catalina 10.15.4 -täydennyspäivitys aiheuttaa enemmän ongelmia kuin ratkaiseminen

Apple julkaisi äskettäin macOS Catalina 10.15.4 -lisäpäivityksen ongelmien korjaamiseksi, mutta näyttää siltä, ​​että päivitys aiheuttaa lisää ongelmia, jotka johtavat mac-koneiden tiilikaamiseen. Lue tämä artikkeli saadaksesi lisätietoja