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ọ:
- Awọn idaduro ni ikojọpọ awọn oju-iwe wẹẹbu nitori awọn akọle HTTP gigun.
- HTTP/1.1 nikan ni anfani lati fi ibere kan ranṣẹ fun faili kọọkan fun asopọ TCP.
- 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:
- 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. 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.
- Awọn iṣe wẹẹbu yiyara eyiti o ja si abajade ipo SEO ti o dara julọ.
- Aabo ti o dara si nitori ọpọlọpọ awọn aṣawakiri akọkọ n gbe HTTP/2 lori HTTPS.
- 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.