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:

  1. Dewmien fit-tagħbija tal-paġni tal-web minħabba headers HTTP twal.
  2. HTTP/1.1 jista' jibgħat biss talba waħda għal kull fajl għal kull konnessjoni TCP.
  3. 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:

  1. 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.
  2. 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.
  3. Prestazzjoni tal-web aktar mgħaġġla li konsegwentement iwasslu għal klassifikazzjoni SEO aħjar.
  4. Sigurtà mtejba peress li l-biċċa l-kbira tal-browsers mainstream jgħabbu HTTP/2 fuq HTTPS.
  5. 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à.