Kuidas lubada Ubuntu Apache'is HTTP/2


Alates veebi (www) loomisest on HTTP-protokoll aastate jooksul arenenud, et pakkuda turvalist ja kiiret digitaalset sisu Interneti kaudu.

Kõige laialdasemalt kasutatav versioon on HTTP 1.1 ja kuigi see sisaldab funktsioonide täiustusi ja jõudluse optimeerimist varasemate versioonide puuduste kõrvaldamiseks, jääb see alla mõnele muule olulisele funktsioonile, millele HTTP/2 on tähelepanu pööranud.

HTTP/1.1 protokollil on järgmised puudused, mis muudavad selle vähem ideaalseks, eriti suure liiklusega veebiserverite käitamisel:

  1. Veebilehtede laadimine viibib pikkade HTTP-päiste tõttu.
  2. HTTP/1.1 on võimeline saatma iga faili kohta ainult ühe taotluse TCP-ühenduse kohta.
  3. Arvestades, et HTTP/1.1 töötleb iga TCP-ühenduse kohta ühte taotlust, on brauserid sunnitud päringute samaaegseks töötlemiseks saatma paralleelsete TCP-ühenduste hulga. See toob kaasa TCP ülekoormuse ja lõpuks ribalaiuse raiskamise ning võrgu halvenemise.

Eespool nimetatud probleemid põhjustasid ribalaiuse kasutamisel sageli jõudluse halvenemist ja suuri üldkulusid. HTTP/2 tuli nende probleemide lahendamiseks pildile ja on nüüd HTTP-protokollide tulevik.

See pakub järgmisi eeliseid:

  1. Päise tihendamine, mis minimeerib kliendi taotlusi ja vähendab seeläbi ribalaiuse tarbimist. Selle tulemuseks on kiire lehe laadimiskiirus.
  2. Mitme taotluse multipleksimine ühe TCP-ühenduse kaudu. Nii server kui klient saavad jaotada HTTP-päringu mitmeks kaadriks ja need teises otsas ümber rühmitada.
  3. Kiiremad veebietendused, mis toovad kaasa parema SEO asetuse.
  4. Parem turvalisus, kuna enamik peavoolu sirvijaid laadib HTTP/2 üle HTTPS-i.
  5. HTTP/2 peetakse tänu päiste tihendusfunktsioonile mobiilisõbralikumaks.

See tähendab, et lubame HTTP/2 Apache'is Ubuntu 20.04 LTS ja Ubuntu 18.04 LTS.

Enne alustamist veenduge, et lubate HTTPS-i Apache veebiserveris enne HTTP/2 lubamist. Seda seetõttu, et kõik peavoolu veebibrauserid toetavad HTTP/2 üle HTTPS-i. Mul on domeeninimi, mis osutab Ubuntu 20.04 eksemplarile, mis on Let’s Encrypt sertifikaat.

Samuti on soovitatav, et teil oleks Apache 2.4.26 ja uuemad versioonid tootmisserveritele, kes kavatsevad minna üle HTTP/2-le.

Käivitatava Apache versiooni kontrollimiseks käivitage käsk:

$ apache2 -v

Väljundist näete, et kasutame uusimat versiooni, mis on artikli kirjutamise ajal Apache 2.4.41.

Luba HTTP/2 Apache virtuaalses hostis

Alustamiseks veenduge kõigepealt, et veebiserver töötab HTTP/1.1-ga. Seda saate teha brauseris, avades Google Chrome'is arendaja tööriistade jaotise, kasutades kombinatsiooni Ctrl + SHIFT + I . Klõpsake vahekaardil Võrk ja leidke veerg Protokoll.

Järgmisena lubage Ubuntu HTTP/2 moodul, käivitades järgmise käsu.

$ sudo a2enmod http2

Järgmisena leidke ja redigeerige oma SSL-i virtuaalhostifail, kui olete HTTPS-i lubanud rakendusega Let’s Encrypt, luuakse uus fail järelliitega le-ssl.conf.

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

Sisestage direktiiv allpool märgendi järele.

Protocols h2 http/1.1

Muudatuste salvestamiseks taaskäivitage Apache veebiserver.

$ sudo systemctl restart apache2

Kui soovite kontrollida, kas HTTP/2 on lubatud, tooge HTTP-päised, kasutades näitamiseks järgmist käsku curl.

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

Sa peaksid saama kuvatud väljundi.

HTTP/2 200

Laadige brauseris oma sait uuesti. Seejärel minge tagasi arendaja tööriistade juurde ja kinnitage veerus Protokoll HTTP/2, mida tähistab silt h2 .

Mod_php mooduli kasutamisel Apache'iga

Kui kasutate Apache'i mooduli mod_php kõrval, peate üle minema PHP-FPM-ile. Seda seetõttu, et mod_php moodul kasutab prefork MPM moodulit, mida HTTP/2 ei toeta. Peate desinstallima prefork MPM-i ja lülituma moodulile mpm_event, mida toetab HTTP/2.

Kui kasutate näiteks moodulit PHP 7.4 mod_php, keelake see, nagu näidatud:

$ sudo a2dismod php7.4 

Seejärel keelake prefork MPM moodul.

$ sudo a2dismod mpm_prefork

Pärast moodulite keelamist lubage järgmiselt moodulid Event MPM, Fast_CGI ja setenvif, nagu näidatud.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

Installige PHP-FPM Ubuntu

Järgmisena installige ja käivitage PHP-FPM, nagu näidatud.

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

Seejärel lubage PHP-FPM käivitamisel käivitamisel.

$ sudo systemctl enable php7.4-fpm

Järgmisena lubage PHP-FPM Apache'i PHP-käitlejana ja taaskäivitage Apache veebiserver muudatuste teostamiseks.

$ sudo a2enconf php7.4-fpm

Lubage Apache Ubuntu HTTP/2 tugi

Seejärel lubage HTTP/2 moodul nagu varem.

$ sudo a2enmod http2

Kõigi muudatuste sünkroonimiseks taaskäivitage Apache.

$ sudo systemctl restart apache2

Lõpuks saate testida, kas teie server kasutab HTTP/2 protokolli, kasutades käsku curl, nagu on näidatud.

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

Varem dokumenteeritud kinnitamiseks võite kasutada ka Google Chrome'i brauseri arendaja tööriistu. Peame selle juhendi lõpuni jõudma. Loodetavasti leidsite, et teave on väärtuslik ja saate hõlpsalt lubada HTTP/2 Apache'is.