Bii o ṣe le Jeki HTTP/2 ni Afun lori Ubuntu


Lati ibẹrẹ Web Wide Wẹẹbu (www), ilana HTTP ti dagbasoke ni awọn ọdun lati firanṣẹ akoonu oni-nọmba ti o ni aabo ati iyara lori intanẹẹti.

Ẹya ti o lo julọ julọ jẹ HTTP 1.1 ati lakoko ti o ṣe akopọ pẹlu awọn ilọsiwaju ẹya ati awọn iṣapeye iṣẹ lati koju awọn ailagbara ti awọn ẹya ti iṣaaju, o kuna fun awọn ẹya pataki miiran diẹ ti o ti ni adirẹsi nipasẹ HTTP/2.

Ilana HTTP/1.1 kun fun awọn aito wọnyi ti o jẹ ki o jẹ apẹrẹ ti o dara julọ paapaa nigbati o ba n ṣiṣẹ awọn olupin ayelujara giga-ijabọ:

  1. Awọn idaduro ni ikojọpọ awọn oju-iwe wẹẹbu nitori awọn akọle HTTP gigun.
  2. HTTP/1.1 nikan ni anfani lati fi ibere kan ranṣẹ fun faili kọọkan fun asopọ TCP.
  3. Fun pe HTTP/1.1 ṣe ilana ibeere kan fun gbogbo asopọ TCP, awọn aṣawakiri ni agbara mu lati fi iṣan omi kan ti awọn isopọ TCP ti o jọra ṣe lati ṣe igbakanna awọn ibeere naa. Eyi n yori si riru TCP ati ibajẹ bandiwidi ati ibajẹ nẹtiwọọki nikẹhin.

Awọn iṣoro ti a darukọ loke nigbagbogbo mu ibajẹ iṣẹ ati awọn idiyele ori giga ni lilo bandiwidi. HTTP/2 wa sinu aworan lati koju awọn iṣoro wọnyi ati pe o jẹ ọjọ iwaju fun awọn ilana HTTP bayi.

O nfun awọn anfani wọnyi:

  1. Funmorawon akọsori ti o dinku awọn ibeere alabara ati nitorinaa o dinku agbara bandiwidi. Abajade abajade jẹ awọn iyara fifuye oju-iwe iyara.
  2. Pupọ pupọ awọn ibeere pupọ lori asopọ TCP kan. Mejeeji olupin ati alabara le fọ ohun elo HTTP si awọn fireemu pupọ ki o tun ṣajọ wọn ni opin keji.
  3. Awọn iṣe wẹẹbu yiyara eyiti o ja si abajade ipo SEO ti o dara julọ.
  4. Aabo ti o dara si nitori ọpọlọpọ awọn aṣawakiri akọkọ n gbe HTTP/2 lori HTTPS.
  5. HTTP/2 ni a ṣe akiyesi ọpẹ si alagbeka diẹ sii si ẹya funmorawon akọsori.

Ti o sọ, a yoo mu HTTP/2 ṣiṣẹ lori Apache lori Ubuntu 20.04 LTS ati Ubuntu 18.04 LTS.

Ṣaaju ki o to bẹrẹ, rii daju pe o mu HTTPS ṣiṣẹ lori oju-iwe ayelujara Apache ṣaaju ṣiṣe HTTP/2. Eyi jẹ nitori gbogbo awọn aṣawakiri wẹẹbu akọkọ ṣe atilẹyin HTTP/2 lori HTTPS. Mo ni orukọ ìkápá kan ti a tọka si apeere lori Ubuntu 20.04 eyiti o jẹ Jẹ ki Encrypt ijẹrisi.

Pẹlupẹlu, o ni iṣeduro pe o ni Apache 2.4.26 ati awọn ẹya nigbamii fun awọn olupin iṣelọpọ ti pinnu lati ṣe iyipada si HTTP/2.

Lati ṣayẹwo ẹya ti Apache ti o nṣiṣẹ, ṣiṣẹ pipaṣẹ:

$ apache2 -v

Lati iṣẹjade, o le rii pe a nlo ẹya tuntun, eyiti o jẹ Apache 2.4.41 ni akoko kikọ iwe nkan yii.

Jeki HTTP/2 lori Gbalejo foju kan Afun

Lati bẹrẹ, akọkọ jẹrisi pe webserver n ṣiṣẹ HTTP/1.1. O le ṣe eyi lori ẹrọ lilọ kiri ayelujara nipasẹ ṣiṣi apakan awọn irinṣẹ irinṣẹ Olùgbéejáde lori Google chrome nipa lilo apapo Ctrl + SHIFT + I . Tẹ lori ‘Nẹtiwọọki’ taabu ki o wa ọwọn ‘Protocol’.

Nigbamii, mu ki module HTTP/2 ṣiṣẹ lori Ubuntu nipa ṣiṣe pipaṣẹ atẹle.

$ sudo a2enmod http2

Nigbamii, wa ki o ṣatunkọ faili faili olupin foju SSL rẹ, ti o ba ti mu HTTPS ṣiṣẹ nipa lilo Jẹ ki Encrypt, a ṣẹda faili tuntun pẹlu suffix le-ssl.conf.

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

Fi sii itọsọna ni isalẹ lẹhin tag.

Protocols h2 http/1.1

Lati fipamọ awọn ayipada, tun bẹrẹ webserver Apache.

$ sudo systemctl restart apache2

Lati ṣayẹwo ti o ba ti ṣiṣẹ HTTP/2, mu awọn akọle HTTP ni lilo pipaṣẹ curl atẹle bi ifihan.

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

O yẹ ki o gba ifihan ti o han.

HTTP/2 200

Lori ẹrọ aṣawakiri naa, tun gbe aaye rẹ pada. Lẹhinna pada sẹhin si awọn irinṣẹ Olùgbéejáde ki o jẹrisi HTTP/2 ti o tọka nipasẹ aami h2 lori iwe ‘Protocol’.

Nigbati o ba lo Mod_php Module pẹlu Apache

Ti o ba n ṣiṣẹ Apache lẹgbẹẹ modulu mod_php, o nilo lati yipada si PHP-FPM. Eyi jẹ nitori modulu mod_php nlo modulu MPM prefork eyiti ko ni atilẹyin nipasẹ HTTP/2. O nilo lati yọ MPM prefork kuro ki o yipada si modulu mpm_event eyiti yoo ni atilẹyin nipasẹ HTTP/2.

Ti o ba nlo modulu PHP 7.4 mod_php, fun apẹẹrẹ, mu o ṣiṣẹ bi o ti han:

$ sudo a2dismod php7.4 

Lẹhinna, mu module MPM prefork kuro.

$ sudo a2dismod mpm_prefork

Lẹhin ti muu awọn modulu kuro, atẹle, mu MPM Iṣẹlẹ ṣiṣẹ, Fast_CGI, ati awọn modulu setenvif bi o ti han.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

Fi PHP-FPM sori Ubuntu

Nigbamii, fi sori ẹrọ ati bẹrẹ PHP-FPM bi o ti han.

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

Lẹhinna jeki PHP-FPM lati bẹrẹ ni akoko bata.

$ sudo systemctl enable php7.4-fpm

Nigbamii ti, mu PHP-FPM ṣiṣẹ bi olutọju PHP Afun ki o tun bẹrẹ webserver Apache fun awọn ayipada lati ṣee ṣe.

$ sudo a2enconf php7.4-fpm

Muu atilẹyin HTTP/2 ṣiṣẹ ni Apache Ubuntu

Lẹhinna mu module HTTP/2 ṣiṣẹ bi iṣaaju.

$ sudo a2enmod http2

Tun Afun bẹrẹ lati muu gbogbo awọn ayipada ṣiṣẹpọ.

$ sudo systemctl restart apache2

Lakotan, o le idanwo ti olupin rẹ ba nlo ilana HTTP/2 nipa lilo pipaṣẹ curl bi o ti han.

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

O tun le jáde lati lo awọn irinṣẹ idagbasoke lori ẹrọ lilọ kiri lori Google Chrome lati jẹrisi bi a ti ṣe akọsilẹ rẹ tẹlẹ. A ni si ipari itọsọna yii, A nireti pe o ri alaye ti o niyelori ati pe o le ni itunu mu HTTP/2 ṣiṣẹ lori Apache pẹlu irọrun.