Kif Tattiva HTTP/2 f'Apache fuq Ubuntu
Mill-bidu tal-World Wide Web (www), il-protokoll HTTP evolva matul is-snin biex iwassal kontenut diġitali sigur u veloċi fuq l-internet.
L-aktar verżjoni użata hija HTTP 1.1 u filwaqt li tippakkja b'titjib tal-karatteristiċi u ottimizzazzjonijiet tal-prestazzjoni biex tindirizza n-nuqqasijiet ta 'verżjonijiet preċedenti, hija nieqsa minn ftit karatteristiċi ewlenin oħra li ġew indirizzati mill-HTTP/2.
Il-protokoll HTTP/1.1 huwa mimli bin-nuqqasijiet li ġejjin li jagħmluha inqas ideali speċjalment meta jħaddmu servers tal-web b'traffiku għoli:
- Dewmien fit-tagħbija tal-paġni tal-web minħabba headers HTTP twal.
- HTTP/1.1 jista' jibgħat biss talba waħda għal kull fajl għal kull konnessjoni TCP.
- Minħabba li HTTP/1.1 tipproċessa talba waħda għal kull konnessjoni TCP, il-browsers huma sfurzati jibagħtu għadd kbir ta' konnessjonijiet TCP paralleli biex jipproċessaw it-talbiet fl-istess ħin. Dan iwassal għal konġestjoni tat-TCP u fl-aħħar mill-aħħar ħela tal-bandwidth u degradazzjoni tan-netwerk.
Il-problemi msemmija hawn fuq ħafna drabi wasslu għal degradazzjoni tal-prestazzjoni u spejjeż ġenerali għoljin fl-użu tal-bandwidth. HTTP/2 daħal fl-istampa biex jindirizza dawn il-problemi u issa huwa l-futur għall-protokolli HTTP.
Joffri l-vantaġġi li ġejjin:
- Kompressjoni tal-header li timminimizza t-talbiet tal-klijenti u b'hekk tnaqqas il-konsum tal-bandwidth. L-effett li jirriżulta huwa veloċitajiet veloċi tat-tagħbija tal-paġna.
- Multiplexing ta' diversi talbiet fuq konnessjoni TCP waħda. Kemm is-server kif ukoll il-klijent jistgħu jkissru talba HTTP f'diversi frames u jiġbruhom mill-ġdid fit-tarf l-ieħor.
- Prestazzjoni tal-web aktar mgħaġġla li konsegwentement iwasslu għal klassifikazzjoni SEO aħjar.
- Sigurtà mtejba peress li l-biċċa l-kbira tal-browsers mainstream jgħabbu HTTP/2 fuq HTTPS.
- HTTP/2 huwa meqjus aktar faċli għall-mowbajl grazzi għall-karatteristika tal-kompressjoni tal-header.
Cela dit, se nippermettu HTTP/2 fuq Apache fuq Ubuntu 20.04 LTS u Ubuntu 18.04 LTS.
Qabel ma tibda, kun żgur li tattiva HTTPS fuq is-server tal-web Apache qabel ma tippermetti HTTP/2. Dan għaliex il-web browsers mainstream kollha jappoġġjaw HTTP/2 fuq HTTPS. Għandi isem ta 'dominju indikat għal eżempju fuq Ubuntu 20.04 li huwa ċertifikat Let's Encrypt.
Ukoll, huwa rakkomandat li jkollok Apache 2.4.26 u verżjonijiet aktar tard għal servers ta 'produzzjoni li biħsiebhom jagħmlu bidla għal HTTP/2.
Biex tiċċekkja l-verżjoni ta 'Apache li qed taħdem, eżegwixxi l-kmand:
$ apache2 -v
Mill-output, tista 'tara li qed nużaw l-aħħar verżjoni, li hija Apache 2.4.41 fil-ħin tal-pinning isfel dan l-artikolu.
Ippermetti HTTP/2 fuq Apache Virtual Host
Biex tibda, l-ewwel ikkonferma li l-webserver qed jaħdem HTTP/1.1. Tista' tagħmel dan fuq browser billi tiftaħ is-sezzjoni tal-għodod tal-iżviluppatur fuq Google chrome billi tuża l-kombinazzjoni Ctrl +SHIFT + I
. Ikklikkja fuq it-tab 'Netwerk' u sib il-kolonna 'Protokoll'.
Sussegwentement, ippermetti l-modulu HTTP/2 fuq Ubuntu billi tħaddem il-kmand li ġej.
$ sudo a2enmod http2
Sussegwentement, sib u editja l-fajl ospitanti virtwali SSL tiegħek, jekk ppermettiet HTTPS billi tuża Let's Encrypt, jinħoloq fajl ġdid b'suffiss le-ssl.conf.
$ sudo vim /etc/apache2/sites-enabled/your-domain-name-le-ssl.conf
Daħħal id-direttiva hawn taħt wara t-tikketta
.
Protocols h2 http/1.1
Biex issalva l-bidliet, ibda mill-ġdid Apache webserver.
$ sudo systemctl restart apache2
Biex tiċċekkja jekk HTTP/2 huwiex attivat, ġib l-headers HTTP billi tuża l-kmand curl li ġej kif jidher.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Għandek tikseb l-output murija.
HTTP/2 200
Fuq il-browser, erġa' tagħbija s-sit tiegħek. Imbagħad erġa 'lura għall-għodod tal-iżviluppatur u kkonferma HTTP/2 denotat bit-tikketta h2
fuq il-kolonna 'Protokoll'.
Meta tuża mod_php Modulu ma Apache
Jekk qed tħaddem Apache flimkien mal-modulu mod_php, trid taqleb għal PHP-FPM. Dan huwa minħabba li l-modulu mod_php juża l-modulu MPM prefork li mhuwiex appoġġjat minn HTTP/2. Għandek bżonn tneħħi l-prefork MPM u taqleb għall-modulu mpm_event li se jkun appoġġjat minn HTTP/2.
Jekk qed tuża l-modulu PHP 7.4 mod_php, pereżempju, iddiżattivah kif muri:
$ sudo a2dismod php7.4
Minn hemm 'il quddiem, iddiżattiva l-modulu MPM tal-prefork.
$ sudo a2dismod mpm_prefork
Wara li tiddiżattiva l-moduli, imbagħad, ippermetti l-Avveniment MPM, Fast_CGI, u l-moduli setenvif kif muri.
$ sudo a2enmod mpm_event proxy_fcgi setenvif
Installa PHP-FPM fuq Ubuntu
Sussegwentement, installa u ibda PHP-FPM kif muri.
$ sudo apt install php7.4-fpm $ sudo systemctl start php7.4-fpm
Imbagħad ippermetti PHP-FPM biex jibda fil-ħin tal-ibbutjar.
$ sudo systemctl enable php7.4-fpm
Sussegwentement, ippermetti PHP-FPM bħala l-immaniġġjar tal-PHP ta 'Apache u erġa' ibda l-webserver Apache biex il-bidliet isiru.
$ sudo a2enconf php7.4-fpm
Ippermetti l-Appoġġ HTTP/2 f'Apache Ubuntu
Imbagħad ippermetti l-modulu HTTP/2 bħal qabel.
$ sudo a2enmod http2
Ibda mill-ġdid Apache biex tissinkronizza l-bidliet kollha.
$ sudo systemctl restart apache2
Fl-aħħarnett, tista 'tittestja jekk is-server tiegħek hux qed juża l-protokoll HTTP/2 billi tuża l-kmand curl kif muri.
$ curl -I --http2 -s https://domain.com/ | grep HTTP
Tista 'wkoll tagħżel li tuża l-għodod tal-iżviluppatur fuq il-browser Google Chrome biex tivverifika kif iddokumentat qabel. Irridu sal-aħħar ta 'din il-gwida, Nittamaw li sibt l-informazzjoni siewja u li tista' b'mod komdu tippermetti HTTP/2 fuq Apache bil-faċilità.