Kā iespējot HTTP/2 Apache Ubuntu


Kopš globālā tīmekļa (www) darbības sākuma HTTP protokols gadu gaitā ir attīstījies, lai nodrošinātu drošu un ātru digitālo saturu internetā.

Visplašāk izmantotā versija ir HTTP 1.1, un, lai arī tā piedāvā funkciju uzlabojumus un veiktspējas optimizāciju, lai novērstu iepriekšējo versiju trūkumus, tā neatbilst dažām citām būtiskām funkcijām, kuras ir novērsusi HTTP/2.

HTTP/1.1 protokols ir pilns ar šādām nepilnībām, kas padara to mazāk ideālu, it īpaši, ja darbojas augstas plūsmas tīmekļa serveri:

  1. Kavējas tīmekļa lapu ielāde, pateicoties garām HTTP galvenēm.
  2. HTTP/1.1 spēj nosūtīt tikai vienu pieprasījumu par katru failu katram TCP savienojumam.
  3. Ņemot vērā, ka HTTP/1.1 apstrādā vienu pieprasījumu katram TCP savienojumam, pārlūkprogrammas ir spiestas nosūtīt paralēlu TCP savienojumu straumi, lai vienlaicīgi apstrādātu pieprasījumus. Tas noved pie TCP pārslodzes un galu galā joslas platuma izšķērdēšanas un tīkla degradācijas.

Iepriekš minētās problēmas bieži noveda pie veiktspējas pasliktināšanās un lielām pieskaitāmajām izmaksām joslas platuma lietošanā. HTTP/2 parādījās attēlā, lai risinātu šīs problēmas, un tagad tas ir HTTP protokolu nākotne.

Tas piedāvā šādas priekšrocības:

  1. Galvenes saspiešana, kas samazina klienta pieprasījumus un tādējādi samazina joslas platuma patēriņu. Rezultāts ir ātrs lapas ielādes ātrums.
  2. Vairāku pieprasījumu multipleksēšana vienā TCP savienojumā. Gan serveris, gan klients var sadalīt HTTP pieprasījumu vairākos kadros un pārgrupēt tos otrā galā.
  3. Ātrākas tīmekļa veiktspējas, kas līdz ar to uzlabo SEO rangu.
  4. Uzlabota drošība, jo lielākā daļa parasto pārlūku ielādē HTTP/2, izmantojot HTTPS.
  5. Pateicoties galvenes saspiešanas funkcijai, HTTP/2 tiek uzskatīts par piemērotāku mobilajām ierīcēm.

Tas nozīmē, ka mēs iespējosim HTTP/2 Apache Ubuntu 20.04 LTS un Ubuntu 18.04 LTS.

Pirms sākat, pirms HTTP/2 iespējošanas pārliecinieties, vai esat iespējojis HTTPS Apache tīmekļa serverī. Tas ir tāpēc, ka visas galvenās tīmekļa pārlūkprogrammas atbalsta HTTP/2, izmantojot HTTPS. Man ir domēna vārds, kas norāda uz instanci Ubuntu 20.04, kas ir Let’s Encrypt sertifikāts.

Ieteicams arī izmantot Apache 2.4.26 un jaunākas versijas ražošanas serveriem, kuri plāno pāriet uz HTTP/2.

Lai pārbaudītu palaistās Apache versiju, izpildiet komandu:

$ apache2 -v

No izejas jūs varat redzēt, ka mēs izmantojam jaunāko versiju, kas ir Apache 2.4.41 šī raksta sastādīšanas laikā.

Iespējojiet HTTP/2 Apache virtuālajā resursdatorā

Lai sāktu, vispirms pārbaudiet, vai tīmekļa serveris darbojas HTTP/1.1. To var izdarīt pārlūkprogrammā, Google hromā atverot izstrādātāja rīku sadaļu, izmantojot kombināciju Ctrl + SHIFT + I . Noklikšķiniet uz cilnes Tīkls un atrodiet kolonnu Protokols.

Pēc tam iespējojiet HTTP/2 moduli Ubuntu, izpildot šādu komandu.

$ sudo a2enmod http2

Pēc tam atrodiet un rediģējiet savu SSL virtuālo resursdatora failu, ja esat iespējojis HTTPS, izmantojot Let’s Encrypt, tiek izveidots jauns fails ar le-ssl.conf sufiksu.

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

Ievietojiet direktīvu zem taga .

Protocols h2 http/1.1

Lai saglabātu izmaiņas, restartējiet Apache tīmekļa serveri.

$ sudo systemctl restart apache2

Lai pārbaudītu, vai HTTP/2 ir iespējots, ielādējiet HTTP galvenes, izmantojot šādu čokurošanās komandu kā parādīt.

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

Jums vajadzētu iegūt parādīto rezultātu.

HTTP/2 200

Pārlūkprogrammā atkārtoti ielādējiet savu vietni. Pēc tam atgriezieties pie izstrādātāja rīkiem un kolonnā “Protokols” apstipriniet HTTP/2, ko apzīmē ar etiķeti h2 .

Lietojot mod_php moduli ar Apache

Ja Apache darbojas kopā ar mod_php moduli, jums jāpārslēdzas uz PHP-FPM. Tas notiek tāpēc, ka mod_php modulis izmanto prefork MPM moduli, kuru HTTP/2 neatbalsta. Jums ir jāinstalē prefork MPM un jāpārslēdzas uz moduli mpm_event, kuru atbalstīs HTTP/2.

Piemēram, ja izmantojat moduli PHP 7.4 mod_php, atspējojiet to, kā parādīts:

$ sudo a2dismod php7.4 

Pēc tam atspējojiet prefork MPM moduli.

$ sudo a2dismod mpm_prefork

Pēc moduļu atspējošanas pēc tam iespējojiet moduļus Event MPM, Fast_CGI un setenvif, kā parādīts.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

Instalējiet PHP-FPM uz Ubuntu

Pēc tam instalējiet un sāciet PHP-FPM, kā parādīts.

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

Pēc tam iespējojiet PHP-FPM, lai sāktu sāknēšanas laikā.

$ sudo systemctl enable php7.4-fpm

Pēc tam iespējojiet PHP-FPM kā Apache PHP apstrādātāju un restartējiet Apache tīmekļa serveri, lai veiktu izmaiņas.

$ sudo a2enconf php7.4-fpm

Iespējojiet HTTP/2 atbalstu Apache Ubuntu

Pēc tam iespējojiet HTTP/2 moduli kā iepriekš.

$ sudo a2enmod http2

Restartējiet Apache, lai sinhronizētu visas izmaiņas.

$ sudo systemctl restart apache2

Visbeidzot, jūs varat pārbaudīt, vai jūsu serveris izmanto HTTP/2 protokolu, izmantojot čokurošanās komandu, kā parādīts.

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

Varat arī izvēlēties izmantot pārlūka Google Chrome izstrādātāja rīkus, lai pārbaudītu, kā dokumentēts iepriekš. Mums ir šīs rokasgrāmatas beigas. Mēs ceram, ka informācija jums šķita vērtīga un ka varat ērti iespējot HTTP/2 Apache.