Kuinka ottaa HTTP/2 käyttöön Ubuntun Apachessa


World Wide Webin (www) perustamisesta lähtien HTTP-protokolla on kehittynyt vuosien varrella tarjoamaan turvallista ja nopeaa digitaalista sisältöä Internet.

Yleisimmin käytetty versio on HTTP 1.1, ja vaikka se sisältää parannuksia ja suorituskyvyn optimointeja aiempien versioiden puutteiden korjaamiseksi, se ei vastaa muutamista muista merkittävistä ominaisuuksista, jotka on korjannut. >HTTP/2.

Mitkä ovat HTTP/1.1:n rajoitukset?

HTTP/1.1-protokolla on täynnä seuraavia puutteita, jotka tekevät siitä vähemmän ihanteellisen etenkin käytettäessä paljon liikennettä palvelevia verkkopalvelimia:

  1. Viiveet verkkosivujen lataamisessa pitkien HTTP-otsikoiden vuoksi.
  2. HTTP/1.1 voi lähettää vain yhden pyynnön jokaista tiedostoa kohden TCP-yhteyttä kohden.
  3. Ottaen huomioon, että HTTP/1.1 käsittelee yhden pyynnön jokaista TCP-yhteyttä kohden, selaimet joutuvat lähettämään tulvan rinnakkaisia TCP-yhteyksiä käsitelläkseen pyynnöt samanaikaisesti. Tämä johtaa TCP-ruuhkautumiseen ja lopulta kaistanleveyden hukkaan ja verkon heikkenemiseen.

Yllä mainitut ongelmat johtivat usein suorituskyvyn heikkenemiseen ja korkeisiin yleiskustannuksiin kaistanleveyden käytössä. HTTP/2 tuli kuvaan näiden ongelmien ratkaisemiseksi, ja se on nyt HTTP-protokollien tulevaisuus.

HTTP/2:n käytön edut

Se tarjoaa seuraavat edut:

  1. Otsikkopakkaus, joka minimoi asiakkaan pyynnöt ja vähentää siten kaistanleveyden kulutusta. Tuloksena on nopeat sivun latausnopeudet.
  2. Useiden pyyntöjen multipleksointi yhden TCP-yhteyden kautta. Sekä palvelin että asiakas voivat jakaa HTTP-pyynnön useisiin kehyksiin ja ryhmitellä ne uudelleen toisessa päässä.
  3. Nopeampi web-suorituskyky, mikä johtaa parempaan SEO-sijoitukseen.
  4. Parannettu suojaus, koska useimmat yleiset selaimet lataavat HTTP/2:n HTTPS:n kautta.
  5. HTTP/2:ta pidetään mobiiliystävällisempänä otsikon pakkausominaisuuden ansiosta.

Aiomme kuitenkin ottaa HTTP/2:n käyttöön Apachessa Ubuntu 20.04 LTS:ssä ja Ubuntu 18.04 LTS:ssä.

Edellytykset:

Ennen kuin aloitat, varmista, että otat HTTPS käyttöön Apache-verkkopalvelimessa, ennen kuin otat HTTP/2 käyttöön. Tämä johtuu siitä, että kaikki yleiset verkkoselaimet tukevat HTTP/2:ta HTTPS:n kautta. Minulla on verkkotunnuksen nimi, joka osoittaa esiintymään Ubuntu 20.04:ssä, joka käyttää Let’s Encrypt -varmenteella suojattua Apache-palvelinta.

On myös suositeltavaa, että sinulla on Apache 2.4.26 ja uudemmat versiot tuotantopalvelimille, jotka aikovat siirtyä käyttämään HTTP/2.

Tarkista käyttämäsi Apachen versio suorittamalla komento:

apache2 -v

Tulosteesta näet, että käytämme uusinta versiota, joka on tämän artikkelin kirjoittamishetkellä Apache 2.4.41.

Ota HTTP/2 käyttöön Apache Virtual Hostissa

Aloita varmistamalla, että verkkopalvelimessa on HTTP/1.1. Voit tehdä tämän selaimessa avaamalla kehittäjän työkalut -osion Google Chromessa käyttämällä Ctrl + SHIFT + I -yhdistelmää. Napsauta Verkko-välilehteä ja etsi Protokolla-sarake.

Ota seuraavaksi HTTP/2-moduuli käyttöön Ubuntussa suorittamalla seuraava komento.

sudo a2enmod http2

Etsi seuraavaksi SSL-virtuaalinen isäntätiedostosi ja muokkaa sitä. Jos olet ottanut HTTPS:n käyttöön Let's Encrypt-toiminnolla, uusi tiedosto luodaan le-ssl.conf-tiedostolla. pääte.

sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf

Lisää alla oleva ohje -tunnisteen jälkeen.

Protocols h2 http/1.1

Tallenna muutokset käynnistämällä Apache-verkkopalvelin uudelleen.

sudo systemctl restart apache2

Voit tarkistaa, onko HTTP/2 käytössä, hakemalla HTTP-otsikot käyttämällä seuraavaa curl-komentoa, kuten näytä.

curl -I --http2 -s https://domain.com/ | grep HTTP

Sinun pitäisi saada tulos näytetään.

HTTP/2 200

Lataa sivustosi uudelleen selaimessa. Palaa sitten kehittäjätyökaluihin ja vahvista HTTP/2, joka on merkitty h2-tunnisteella Protokolla-sarakkeessa.

Käytettäessä mod_php-moduulia Apachen kanssa

Jos käytät Apachea mod_php-moduulin rinnalla, sinun on vaihdettava PHP-FPM-tilaan. Tämä johtuu siitä, että mod_php-moduuli käyttää preforkin MPM-moduulia, jota HTTP/2 ei tue. Sinun on poistettava preforkin MPM asennus ja vaihdettava mpm_event-moduuliin, jota HTTP/2 tukee.

Jos käytät esimerkiksi PHP 7.4 mod_php -moduulia, poista se käytöstä kuvan mukaisesti:

sudo a2dismod php7.4 

Poista sen jälkeen preforkin MPM-moduuli käytöstä.

sudo a2dismod mpm_prefork

Kun olet poistanut moduulit käytöstä, ota seuraavaksi käyttöön Event MPM-, Fast_CGI- ja setenvif-moduulit kuvan mukaisesti.

sudo a2enmod mpm_event proxy_fcgi setenvif

Asenna PHP-FPM Ubuntuun

Seuraavaksi asenna ja käynnistä PHP-FPM kuvan mukaisesti.

sudo apt install php7.4-fpm 
sudo systemctl start php7.4-fpm

Ota sitten PHP-FPM käyttöön käynnistyksen yhteydessä.

sudo systemctl enable php7.4-fpm

Ota seuraavaksi PHP-FPM käyttöön Apachen PHP-käsittelijänä ja käynnistä Apache-verkkopalvelin uudelleen, jotta muutokset tulevat voimaan.

sudo a2enconf php7.4-fpm

Ota HTTP/2-tuki käyttöön Apache Ubuntussa

Ota sitten HTTP/2-moduuli käyttöön kuten aiemmin.

sudo a2enmod http2

Synkronoi kaikki muutokset käynnistämällä Apache uudelleen.

sudo systemctl restart apache2

Lopuksi voit testata, käyttääkö palvelimesi HTTP/2-protokollaa käyttämällä curl-komentoa kuvan mukaisesti.

curl -I --http2 -s https://domain.com/ | grep HTTP

Voit myös käyttää Google Chrome -selaimen kehittäjätyökaluja vahvistaaksesi aiemmin dokumentoidun mukaisesti. Tämän oppaan loppuun asti. Toivomme, että tietosi oli arvokasta ja että voit ottaa HTTP/2:n käyttöön helposti Apachessa.