Hvernig á að virkja HTTP/2 í Apache á Ubuntu


Frá upphafi veraldarvefsins (www) hefur HTTP samskiptareglur þróast í gegnum árin til að skila öruggu og hröðu stafrænu efni yfir internetið.

Mest notaða útgáfan er HTTP 1.1 og á meðan hún er pakkað af eiginleikum og hagræðingu afkasta til að taka á göllum fyrri útgáfur, þá er hún undir nokkrum öðrum mikilvægum eiginleikum sem HTTP/2 hefur tekið á.

HTTP/1.1 samskiptareglur eru fullar af eftirfarandi göllum sem gera hana síður tilvalin sérstaklega þegar keyrt er á vefþjónum með mikla umferð:

  1. Tafir við að hlaða vefsíðum vegna langra HTTP-hausa.
  2. HTTP/1.1 er aðeins hægt að senda eina beiðni fyrir hverja skrá fyrir hverja TCP-tengingu.
  3. Í ljósi þess að HTTP/1.1 vinnur úr einni beiðni fyrir hverja TCP-tengingu, neyðast vafrar til að senda flóð af samhliða TCP-tengingum til að vinna úr beiðnunum samtímis. Þetta leiðir til TCP þrengsla og á endanum bandbreiddarsóun og niðurbroti netkerfisins.

Ofangreind vandamál leiddu oft til skerðingar á frammistöðu og hás kostnaðar við bandbreiddarnotkun. HTTP/2 kom inn í myndina til að takast á við þessi vandamál og er nú framtíðin fyrir HTTP samskiptareglur.

Það býður upp á eftirfarandi kosti:

  1. Höfuðþjöppun sem lágmarkar beiðnir viðskiptavinar og lækkar þar með bandbreiddarnotkun. Afleiðingin er hraður hleðsluhraði síðunnar.
  2. Margar beiðnir eru margþættar yfir eina TCP tengingu. Bæði þjónninn og biðlarinn geta skipt niður HTTP beiðni í marga ramma og endurflokkað þá á hinum endanum.
  3. Hraðari afköst á vefnum sem leiða til betri SEO röðunar.
  4. Bætt öryggi þar sem flestir almennir vafrar hlaða HTTP/2 yfir HTTPS.
  5. HTTP/2 er talið farsímavænna þökk sé hausþjöppunareiginleikanum.

Sem sagt, við ætlum að virkja HTTP/2 á Apache á Ubuntu 20.04 LTS og Ubuntu 18.04 LTS.

Áður en þú byrjar skaltu ganga úr skugga um að þú kveikir á HTTPS á Apache vefþjóninum áður en þú kveikir á HTTP/2. Þetta er vegna þess að allir almennir vafrar styðja HTTP/2 yfir HTTPS. Ég er með lén sem benti á tilvik á Ubuntu 20.04 sem er Let's Encrypt vottorð.

Einnig er mælt með því að þú hafir Apache 2.4.26 og nýrri útgáfur fyrir framleiðsluþjóna sem ætla að skipta yfir í HTTP/2.

Til að athuga hvaða útgáfu af Apache þú ert að keyra skaltu framkvæma skipunina:

$ apache2 -v

Af úttakinu geturðu séð að við erum að nota nýjustu útgáfuna, sem er Apache 2.4.41 á þeim tíma sem þessi grein var skrifuð niður.

Virkjaðu HTTP/2 á Apache sýndargestgjafa

Til að byrja, staðfestu fyrst að vefþjónninn keyri HTTP/1.1. Þú getur gert þetta í vafra með því að opna verkfærahlutann í Google króm með Ctrl +SHIFT + I samsetningunni. Smelltu á 'Network' flipann og finndu dálkinn 'Protocol'.

Næst skaltu virkja HTTP/2 eininguna á Ubuntu með því að keyra eftirfarandi skipun.

$ sudo a2enmod http2

Næst skaltu finna og breyta SSL sýndarhýsingarskránni þinni, ef þú hefur virkjað HTTPS með Let's Encrypt, er ný skrá búin til með le-ssl.conf viðskeytinu.

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

Settu tilskipunina fyrir neðan á eftir merkinu.

Protocols h2 http/1.1

Til að vista breytingarnar skaltu endurræsa Apache vefþjón.

$ sudo systemctl restart apache2

Til að athuga hvort HTTP/2 sé virkt skaltu sækja HTTP hausana með því að nota eftirfarandi krulla skipun sem sýnd.

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

Þú ættir að fá úttakið sýnt.

HTTP/2 200

Í vafranum skaltu endurhlaða síðuna þína. Farðu síðan aftur í þróunarverkfærin og staðfestu HTTP/2 sem táknað er með h2 merkimiðanum í dálknum „Samskiptareglur“.

Þegar mod_php Module er notað með Apache

Ef þú ert að keyra Apache samhliða mod_php einingunni þarftu að skipta yfir í PHP-FPM. Þetta er vegna þess að mod_php einingin notar prefork MPM eininguna sem er ekki studd af HTTP/2. Þú þarft að fjarlægja prefork MPM og skipta yfir í mpm_event eininguna sem verður studd af HTTP/2.

Ef þú ert að nota PHP 7.4 mod_php mát, til dæmis, slökktu á henni eins og sýnt er:

$ sudo a2dismod php7.4 

Slökktu síðan á prefork MPM einingunni.

$ sudo a2dismod mpm_prefork

Eftir að hafa gert einingarnar óvirkar, virkjaðu næst Event MPM, Fast_CGI og setenvif einingarnar eins og sýnt er.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

Settu upp PHP-FPM á Ubuntu

Næst skaltu setja upp og byrja PHP-FPM eins og sýnt er.

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

Virkjaðu síðan PHP-FPM til að byrja við ræsingu.

$ sudo systemctl enable php7.4-fpm

Næst skaltu virkja PHP-FPM sem PHP meðferðaraðila Apache og endurræsa Apache vefþjóninn til að breytingarnar komi í framkvæmd.

$ sudo a2enconf php7.4-fpm

Virkjaðu HTTP/2 stuðning í Apache Ubuntu

Virkjaðu síðan HTTP/2 eininguna eins og áður.

$ sudo a2enmod http2

Endurræstu Apache til að samstilla allar breytingar.

$ sudo systemctl restart apache2

Að lokum geturðu prófað hvort þjónninn þinn notar HTTP/2 samskiptareglur með því að nota curl skipunina eins og sýnt er.

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

Þú getur líka valið að nota þróunartólin í Google Chrome vafranum til að staðfesta eins og áður hefur verið skráð. Við verðum til enda þessarar handbókar, við vonum að þér hafi fundist upplýsingarnar dýrmætar og að þú getir auðveldlega virkjað HTTP/2 á Apache með auðveldum hætti.