ഉബുണ്ടുവിൽ അപ്പാച്ചെയിൽ HTTP/2 എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം


വേൾഡ് വൈഡ് വെബിന്റെ (www) തുടക്കം മുതൽ, ഇൻറർനെറ്റിലൂടെ സുരക്ഷിതവും വേഗതയേറിയതുമായ ഡിജിറ്റൽ ഉള്ളടക്കം നൽകുന്നതിന് വർഷങ്ങളായി HTTP പ്രോട്ടോക്കോൾ വികസിച്ചു.

ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്ന പതിപ്പ് HTTP 1.1 ആണ്, മുൻ പതിപ്പുകളുടെ പോരായ്മകൾ പരിഹരിക്കുന്നതിനായി ഫീച്ചർ മെച്ചപ്പെടുത്തലുകളും പെർഫോമൻസ് ഒപ്റ്റിമൈസേഷനുകളും പായ്ക്ക് ചെയ്യുമെങ്കിലും, HTTP/2 അഭിസംബോധന ചെയ്ത മറ്റ് ചില പ്രധാന സവിശേഷതകളിൽ നിന്ന് ഇത് കുറവാണ്.

HTTP/1.1 പ്രോട്ടോക്കോൾ ഇനിപ്പറയുന്ന പോരായ്മകളാൽ നിറഞ്ഞതാണ്, പ്രത്യേകിച്ചും ഉയർന്ന ട്രാഫിക്കുള്ള വെബ് സെർവറുകൾ പ്രവർത്തിപ്പിക്കുമ്പോൾ അത് അനുയോജ്യമല്ല:

  1. ദൈർഘ്യമേറിയ HTTP തലക്കെട്ടുകൾ കാരണം വെബ് പേജുകൾ ലോഡുചെയ്യുന്നതിൽ കാലതാമസം.
  2. HTTP/1.1-ന് ഓരോ TCP കണക്ഷനും ഓരോ ഫയലിനും ഒരു അഭ്യർത്ഥന മാത്രമേ അയയ്ക്കാൻ കഴിയൂ.
  3. ഓരോ TCP കണക്ഷനുമുള്ള ഒരു അഭ്യർത്ഥന HTTP/1.1 പ്രോസസ്സ് ചെയ്യുന്നതിനാൽ, ഒരേസമയം അഭ്യർത്ഥനകൾ പ്രോസസ്സ് ചെയ്യുന്നതിന് സമാന്തര TCP കണക്ഷനുകളുടെ ഒരു പ്രളയം അയയ്ക്കാൻ ബ്രൗസറുകൾ നിർബന്ധിതരാകുന്നു. ഇത് TCP തിരക്കിലേക്കും ആത്യന്തികമായി ബാൻഡ്uവിഡ്ത്ത് പാഴാക്കലിനും നെറ്റ്uവർക്ക് അപചയത്തിനും കാരണമാകുന്നു.

മേൽപ്പറഞ്ഞ പ്രശ്നങ്ങൾ പലപ്പോഴും ബാൻഡ്uവിഡ്ത്ത് ഉപയോഗത്തിലെ പ്രകടന നിലവാരത്തകർച്ചയിലേക്കും ഉയർന്ന ഓവർഹെഡ് ചെലവുകളിലേക്കും നയിച്ചു. ഈ പ്രശ്uനങ്ങൾ പരിഹരിക്കുന്നതിനാണ് HTTP/2 ചിത്രത്തിൽ വന്നത്, ഇപ്പോൾ HTTP പ്രോട്ടോക്കോളുകളുടെ ഭാവിയാണ്.

ഇത് ഇനിപ്പറയുന്ന ഗുണങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു:

  1. ക്ലയന്റ് അഭ്യർത്ഥനകൾ കുറയ്ക്കുകയും അതുവഴി ബാൻഡ്uവിഡ്ത്ത് ഉപഭോഗം കുറയ്ക്കുകയും ചെയ്യുന്ന ഹെഡർ കംപ്രഷൻ. വേഗത്തിലുള്ള പേജ് ലോഡ് വേഗതയാണ് ഫലമായുണ്ടാകുന്ന ഫലം.
  2. ഒരു TCP കണക്ഷനിലൂടെ നിരവധി അഭ്യർത്ഥനകൾ മൾട്ടിപ്ലക്uസ് ചെയ്യുന്നു. സെർവറിനും ക്ലയന്റിനും ഒരു HTTP അഭ്യർത്ഥനയെ ഒന്നിലധികം ഫ്രെയിമുകളായി വിഭജിക്കാനും മറ്റേ അറ്റത്ത് അവയെ വീണ്ടും ഗ്രൂപ്പുചെയ്യാനും കഴിയും.
  3. മികച്ച SEO റാങ്കിംഗിലേക്ക് നയിക്കുന്ന വേഗത്തിലുള്ള വെബ് പ്രകടനങ്ങൾ.
  4. ഒട്ടുമിക്ക മുഖ്യധാരാ ബ്രൗസറുകളും HTTPS വഴി HTTP/2 ലോഡ് ചെയ്യുന്നതിനാൽ മെച്ചപ്പെട്ട സുരക്ഷ.
  5. ഹെഡർ കംപ്രഷൻ സവിശേഷത കാരണം HTTP/2 കൂടുതൽ മൊബൈൽ-സൗഹൃദമായി കണക്കാക്കപ്പെടുന്നു.

അതായത്, ഞങ്ങൾ ഉബുണ്ടു 20.04 LTS-ലും ഉബുണ്ടു 18.04 LTS-ലും അപ്പാച്ചെയിൽ HTTP/2 പ്രവർത്തനക്ഷമമാക്കാൻ പോകുന്നു.

ആരംഭിക്കുന്നതിന് മുമ്പ്, HTTP/2 പ്രവർത്തനക്ഷമമാക്കുന്നതിന് മുമ്പ് നിങ്ങൾ അപ്പാച്ചെ വെബ്uസെർവറിൽ HTTPS പ്രവർത്തനക്ഷമമാക്കുന്നുവെന്ന് ഉറപ്പാക്കുക. എല്ലാ മുഖ്യധാരാ വെബ് ബ്രൗസറുകളും HTTPS വഴി HTTP/2-നെ പിന്തുണയ്ക്കുന്നതിനാലാണിത്. ഉബുണ്ടു 20.04 ലെ ഒരു ഉദാഹരണത്തിലേക്ക് ചൂണ്ടിക്കാണിച്ച ഒരു ഡൊമെയ്ൻ നാമം എനിക്കുണ്ട്, അത് നമുക്ക് എൻക്രിപ്റ്റ് സർട്ടിഫിക്കറ്റ് ആണ്.

കൂടാതെ, HTTP/2 ലേക്ക് മാറാൻ ഉദ്ദേശിക്കുന്ന പ്രൊഡക്ഷൻ സെർവറുകൾക്കായി നിങ്ങൾക്ക് അപ്പാച്ചെ 2.4.26 ഉം പിന്നീടുള്ള പതിപ്പുകളും ഉണ്ടായിരിക്കണമെന്ന് ശുപാർശ ചെയ്യുന്നു.

നിങ്ങൾ പ്രവർത്തിപ്പിക്കുന്ന അപ്പാച്ചെയുടെ പതിപ്പ് പരിശോധിക്കാൻ, കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുക:

$ apache2 -v

ഔട്ട്uപുട്ടിൽ നിന്ന്, ഞങ്ങൾ ഏറ്റവും പുതിയ പതിപ്പാണ് ഉപയോഗിക്കുന്നതെന്ന് നിങ്ങൾക്ക് കാണാൻ കഴിയും, ഈ ലേഖനം എഴുതുന്ന സമയത്ത് അപ്പാച്ചെ 2.4.41 ആണ്.

ഒരു അപ്പാച്ചെ വെർച്വൽ ഹോസ്റ്റിൽ HTTP/2 പ്രവർത്തനക്ഷമമാക്കുക

ആരംഭിക്കുന്നതിന്, വെബ്uസെർവർ HTTP/1.1 പ്രവർത്തിക്കുന്നുവെന്ന് ആദ്യം സ്ഥിരീകരിക്കുക. Ctrl +SHIFT + I കോമ്പിനേഷൻ ഉപയോഗിച്ച് Google chrome-ൽ ഡവലപ്പർ ടൂളുകളുടെ വിഭാഗം തുറന്ന് നിങ്ങൾക്ക് ഇത് ബ്രൗസറിൽ ചെയ്യാൻ കഴിയും. 'നെറ്റ്uവർക്ക്' ടാബിൽ ക്ലിക്ക് ചെയ്ത് 'പ്രോട്ടോക്കോൾ' കോളം കണ്ടെത്തുക.

അടുത്തതായി, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ഉബുണ്ടുവിൽ HTTP/2 മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo a2enmod http2

അടുത്തതായി, നിങ്ങളുടെ SSL വെർച്വൽ ഹോസ്റ്റ് ഫയൽ കണ്ടെത്തി എഡിറ്റ് ചെയ്യുക, നിങ്ങൾ ലെറ്റ്സ് എൻക്രിപ്റ്റ് ഉപയോഗിച്ച് HTTPS പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, le-ssl.conf സഫിക്സ് ഉപയോഗിച്ച് ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കപ്പെടും.

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

ടാഗിന് ശേഷം ചുവടെയുള്ള നിർദ്ദേശം ചേർക്കുക.

Protocols h2 http/1.1

മാറ്റങ്ങൾ സംരക്ഷിക്കാൻ, അപ്പാച്ചെ വെബ്സെർവർ പുനരാരംഭിക്കുക.

$ sudo systemctl restart apache2

HTTP/2 പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടോയെന്ന് പരിശോധിക്കാൻ, ഇനിപ്പറയുന്ന curl കമാൻഡ് ഉപയോഗിച്ച് HTTP തലക്കെട്ടുകൾ കാണിക്കുക.

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

നിങ്ങൾക്ക് കാണിച്ചിരിക്കുന്ന ഔട്ട്പുട്ട് ലഭിക്കണം.

HTTP/2 200

ബ്രൗസറിൽ, നിങ്ങളുടെ സൈറ്റ് റീലോഡ് ചെയ്യുക. തുടർന്ന് ഡെവലപ്പർ ടൂളുകളിലേക്ക് തിരികെ പോയി 'പ്രോട്ടോക്കോൾ' കോളത്തിലെ h2 ലേബൽ സൂചിപ്പിക്കുന്ന HTTP/2 സ്ഥിരീകരിക്കുക.

അപ്പാച്ചെ ഉപയോഗിച്ച് mod_php മൊഡ്യൂൾ ഉപയോഗിക്കുമ്പോൾ

നിങ്ങൾ mod_php മൊഡ്യൂളിനോടൊപ്പം അപ്പാച്ചെ പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, നിങ്ങൾ PHP-FPM-ലേക്ക് മാറേണ്ടതുണ്ട്. കാരണം, mod_php മൊഡ്യൂൾ HTTP/2 പിന്തുണയ്ക്കാത്ത prefork MPM മൊഡ്യൂൾ ഉപയോഗിക്കുന്നു. നിങ്ങൾ prefork MPM അൺഇൻസ്റ്റാൾ ചെയ്യുകയും HTTP/2 പിന്തുണയ്ക്കുന്ന mpm_event മൊഡ്യൂളിലേക്ക് മാറുകയും വേണം.

നിങ്ങൾ PHP 7.4 mod_php മൊഡ്യൂളാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ഉദാഹരണത്തിന്, കാണിച്ചിരിക്കുന്നതുപോലെ ഇത് പ്രവർത്തനരഹിതമാക്കുക:

$ sudo a2dismod php7.4 

അതിനുശേഷം, പ്രീഫോർക്ക് MPM മൊഡ്യൂൾ പ്രവർത്തനരഹിതമാക്കുക.

$ sudo a2dismod mpm_prefork

മൊഡ്യൂളുകൾ പ്രവർത്തനരഹിതമാക്കിയ ശേഷം, അടുത്തതായി, കാണിച്ചിരിക്കുന്നതുപോലെ Event MPM, Fast_CGI, setenvif മൊഡ്യൂളുകൾ പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo a2enmod mpm_event proxy_fcgi setenvif

ഉബുണ്ടുവിൽ PHP-FPM ഇൻസ്റ്റാൾ ചെയ്യുക

അടുത്തതായി, കാണിച്ചിരിക്കുന്നതുപോലെ PHP-FPM ഇൻസ്റ്റാൾ ചെയ്ത് ആരംഭിക്കുക.

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

തുടർന്ന് ബൂട്ട് സമയത്ത് ആരംഭിക്കുന്നതിന് PHP-FPM പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo systemctl enable php7.4-fpm

അടുത്തതായി, അപ്പാച്ചെയുടെ PHP ഹാൻഡ്uലറായി PHP-FPM പ്രവർത്തനക്ഷമമാക്കുകയും മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുത്തുന്നതിനായി അപ്പാച്ചെ വെബ്uസെർവർ പുനരാരംഭിക്കുകയും ചെയ്യുക.

$ sudo a2enconf php7.4-fpm

അപ്പാച്ചെ ഉബുണ്ടുവിൽ HTTP/2 പിന്തുണ പ്രവർത്തനക്ഷമമാക്കുക

തുടർന്ന് HTTP/2 മോഡ്യൂൾ മുമ്പത്തെപ്പോലെ പ്രവർത്തനക്ഷമമാക്കുക.

$ sudo a2enmod http2

എല്ലാ മാറ്റങ്ങളും സമന്വയിപ്പിക്കാൻ അപ്പാച്ചെ പുനരാരംഭിക്കുക.

$ sudo systemctl restart apache2

അവസാനമായി, കാണിച്ചിരിക്കുന്നതുപോലെ curl കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങളുടെ സെർവർ HTTP/2 പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കാം.

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

നേരത്തെ ഡോക്യുമെന്റ് ചെയ്തതുപോലെ പരിശോധിച്ചുറപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് Google Chrome ബ്രൗസറിലെ ഡെവലപ്പർ ടൂളുകൾ ഉപയോഗിക്കാനും തിരഞ്ഞെടുക്കാവുന്നതാണ്. ഞങ്ങൾക്ക് ഈ ഗൈഡിന്റെ അവസാനമുണ്ട്, നിങ്ങൾ വിവരങ്ങൾ വിലപ്പെട്ടതായി കണ്ടെത്തിയെന്നും നിങ്ങൾക്ക് അപ്പാച്ചെയിൽ സുഖകരമായി HTTP/2 പ്രവർത്തനക്ഷമമാക്കാമെന്നും ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു.