Nginx-ൽ HTTP/2.0 എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം


HTTP/2 ആണ് HTTP പ്രോട്ടോക്കോളിന്റെ ഏറ്റവും പുതിയ സ്റ്റാൻഡേർഡ്, ഇത് HTTP/1.1-ന്റെ പിൻഗാമിയാണ്. വെബ് ഡെവലപ്പർമാർക്കും ഉപയോക്താക്കൾക്കും ഇത് നൽകുന്ന നേട്ടങ്ങൾ കാരണം ഇത് കൂടുതൽ ജനപ്രിയമാവുകയാണ്. HTTP/1.1-ന്റെ എല്ലാ പ്രധാന സവിശേഷതകളെയും പിന്തുണയ്uക്കുന്നതിലൂടെ ഇത് HTTP സെമാന്റിക്uസിനായി ഒപ്uറ്റിമൈസ് ചെയ്uത ഗതാഗതം നൽകുന്നു, എന്നാൽ ഒന്നിലധികം വഴികളിൽ കൂടുതൽ കാര്യക്ഷമമാക്കാൻ ഇത് ലക്ഷ്യമിടുന്നു.

ഒരു വെബ്uസൈറ്റ്/ആപ്ലിക്കേഷൻ ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനുള്ള കൂടുതൽ സാധ്യതകൾ നൽകുന്ന നിരവധി സവിശേഷതകൾ HTTP/2-ന് മുകളിൽ ഉണ്ട്. ഇത് യഥാർത്ഥ മൾട്ടിപ്ലക്uസിംഗും കൺകറൻസിയും, മികച്ച ഹെഡർ കംപ്രഷൻ (ബൈനറി എൻകോഡിംഗ്), മികച്ച മുൻഗണന നൽകൽ, മികച്ച ഫ്ലോ കൺട്രോൾ മെക്കാനിസങ്ങൾ, കൂടാതെ ക്ലയന്റിലേക്ക് പ്രതികരണങ്ങൾ നൽകാൻ സെർവറിനെ പ്രാപ്uതമാക്കുന്ന \സെർവർ പുഷ് എന്ന പുതിയ ഇന്ററാക്ഷൻ മോഡ് എന്നിവ വാഗ്ദാനം ചെയ്യുന്നു. പറയേണ്ടതില്ലല്ലോ, HTTP /2 എന്നത് Google-ന്റെ പരീക്ഷണാത്മക SPDY പ്രോട്ടോക്കോൾ അടിസ്ഥാനമാക്കിയുള്ളതാണ്.

അതിനാൽ, മൊത്തത്തിലുള്ള വെബ് പേജ് ലോഡിംഗ് സമയം കുറയ്ക്കുക, അങ്ങനെ പ്രകടനം മെച്ചപ്പെടുത്തുക എന്നതാണ് HTTP/2 ന്റെ പ്രാഥമിക ശ്രദ്ധ. ഇത് നെറ്റ്uവർക്ക്, സെർവർ റിസോഴ്uസ് ഉപയോഗത്തിലും സുരക്ഷയിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു, കാരണം, HTTP/2 ഉപയോഗിച്ച്, SSL/TLS എൻക്രിപ്ഷൻ നിർബന്ധമാണ്.

ഈ ലേഖനത്തിൽ, ലിനക്സ് സെർവറുകളിൽ HTTP/2 പിന്തുണയോടെ Nginx എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാമെന്ന് നിങ്ങൾ പഠിക്കും.

  • ngx_http_v2_module മൊഡ്യൂൾ ഉപയോഗിച്ച് നിർമ്മിച്ച, NGINX പതിപ്പ് 1.9.5 അല്ലെങ്കിൽ അതിലും ഉയർന്നതിന്റെ പ്രവർത്തന ഇൻസ്റ്റാളേഷൻ.
  • നിങ്ങളുടെ സൈറ്റ് SSL/TLS സർട്ടിഫിക്കറ്റ് ഉപയോഗിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക, നിങ്ങൾക്ക് ഒന്നുമില്ലെങ്കിൽ, നിങ്ങൾക്ക് സ്വയം ഒപ്പിട്ട സർട്ടിഫിക്കറ്റിൽ നിന്ന് ലഭിക്കും.

ഇനിപ്പറയുന്ന ഗൈഡുകളിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾക്ക് NGINX ഇൻസ്റ്റാൾ ചെയ്യാം അല്ലെങ്കിൽ ഒരു LEMP സ്റ്റാക്ക് ഉപയോഗിച്ച് വിന്യസിക്കാം:

  • CentOS 8-ൽ Nginx എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • CentOS 8-ൽ LEMP സെർവർ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • RHEL 8-ൽ NGINX, MySQL/MariaDB, PHP എന്നിവ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • ഉബുണ്ടു 20.04-ൽ PhpMyAdmin ഉപയോഗിച്ച് LEMP സ്റ്റാക്ക് എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം
  • ഡെബിയൻ 10-ൽ സെർവർ ബ്ലോക്കുകൾ (വെർച്വൽ ഹോസ്റ്റുകൾ) ഉപയോഗിച്ച് Nginx ഇൻസ്റ്റാൾ ചെയ്യുക
  • ലിനക്സിൽ ഒരു HTTP ലോഡ് ബാലൻസറായി Nginx എങ്ങനെ ഉപയോഗിക്കാം

NGINX-ൽ HTTP/2.0 എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം

നിങ്ങൾ NGINX ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിച്ച് ഇത് ngx_http_v2_module മൊഡ്യൂൾ ഉപയോഗിച്ചാണ് നിർമ്മിച്ചതെന്ന് പരിശോധിക്കുക.

# strings /usr/sbin/nginx | grep _module | grep -v configure| sort | grep ngx_http_v2_module

എച്ച്uടിടിപിഎസ് കോൺഫിഗർ ചെയ്uത എൻജിഎൻഎക്uസ് നൽകുന്ന ഒരു വെബ്uസൈറ്റ്/ആപ്ലിക്കേഷൻ നിങ്ങൾക്ക് ലഭിച്ചുകഴിഞ്ഞാൽ, എഡിറ്റിംഗിനായി നിങ്ങളുടെ വെബ്uസൈറ്റുകളുടെ വെർച്വൽ സെർവർ ബ്ലോക്ക് (അല്ലെങ്കിൽ വെർച്വൽ ഹോസ്റ്റ്) ഫയൽ തുറക്കുക.

# vi /etc/nginx/conf.d/example.com.conf                    [On CentOS/RHEL]
$ sudo nano /etc/nginx/sites-available/example.com.conf    [On Ubuntu/Debian]

ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ എല്ലാ listen നിർദ്ദേശങ്ങളിലേക്കും http2 പാരാമീറ്റർ ചേർത്തുകൊണ്ട് നിങ്ങൾക്ക് HTTP/2 പിന്തുണ പ്രവർത്തനക്ഷമമാക്കാം.

listen 443 ssl http2;

സാമ്പിൾ സെർവർ ബ്ലോക്ക് കോൺഫിഗറേഷൻ താഴെ കാണുന്നത് പോലെയാണ്.

server {
        server_name example.com www.example.com;
        access_log  /var/log/nginx/example.com_access.log;
        error_log  /var/log/nginx/example.com_error.log;

        listen [::]:443 ssl ipv6only=on http2; # managed by Certbot
        listen 443 ssl http2; # managed by Certbot

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot    
}

ഫയലിലെ മാറ്റങ്ങൾ സംരക്ഷിച്ച് അത് അടയ്ക്കുക.

തുടർന്ന് NGINX-ന്റെ കോൺഫിഗറേഷൻ വാക്യഘടന പരിശോധിക്കുക, അത് ശരിയാണെങ്കിൽ, Nginx സേവനം പുനരാരംഭിക്കുക.

# nginx -t
# systemctl restart nginx

അടുത്തതായി, നിങ്ങളുടെ വെബ്uസൈറ്റ് HTTP/2 വഴിയാണോ നൽകുന്നത് എന്ന് പരിശോധിക്കാൻ ഒരു വെബ് ബ്രൗസർ തുറക്കുക.

http://www.example.com

HTTP തലക്കെട്ടുകൾ ആക്uസസ് ചെയ്യുന്നതിന്, പ്രദർശിപ്പിച്ചിരിക്കുന്ന വെബ് പേജിൽ വലത്-ക്ലിക്ക് ചെയ്യുക, ഡെവലപ്പർ ടൂളുകൾ തുറക്കുന്നതിനുള്ള ഓപ്ഷനുകളുടെ ലിസ്റ്റിൽ നിന്ന് പരിശോധിക്കുക തിരഞ്ഞെടുക്കുക, തുടർന്ന് നെറ്റ്uവർക്ക് ടാബിൽ ക്ലിക്കുചെയ്uത് പേജ് വീണ്ടും ലോഡുചെയ്യുക.

നിങ്ങളുടെ സൈറ്റ് ഉപയോഗിക്കുന്ന ഒന്ന് കാണുന്നതിന് പ്രോട്ടോക്കോളുകൾക്ക് കീഴിൽ പരിശോധിക്കുക (നിങ്ങൾ പ്രോട്ടോക്കോളുകളുടെ തലക്കെട്ട് കാണുന്നില്ലെങ്കിൽ, ഏതെങ്കിലും തലക്കെട്ടിൽ വലത്-ക്ലിക്കുചെയ്യുക ഉദാ പേര്, തുടർന്ന് അത് ഒരു ഹെഡറായി പ്രദർശിപ്പിക്കുന്നതിന് ലിസ്റ്റിൽ നിന്ന് പ്രോട്ടോക്കോൾ പരിശോധിക്കുക).

നിങ്ങളുടെ സൈറ്റ് HTTP/1.1-ൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, പ്രോട്ടോക്കോളിന് കീഴിൽ, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ http/1.1 കാണും.

ഇത് HTTP/2-ൽ പ്രവർത്തിക്കുന്നുണ്ടെങ്കിൽ, പ്രോട്ടോക്കോളിന് കീഴിൽ, ഇനിപ്പറയുന്ന സ്ക്രീൻഷോട്ടിൽ കാണിച്ചിരിക്കുന്നതുപോലെ നിങ്ങൾ h2 കാണും. വെബ്uസെർവറിൽ നിന്ന് നേരിട്ട് നൽകുന്ന ഏറ്റവും പുതിയ ഉള്ളടക്കം കാണുന്നതിന് നിങ്ങൾ ബ്രൗസർ കാഷെ പ്രവർത്തനരഹിതമാക്കാൻ ആഗ്രഹിച്ചേക്കാം.

അത്രയേയുള്ളൂ! കൂടുതൽ വിവരങ്ങൾക്ക്, ngx_http_v2_module മൊഡ്യൂൾ ഡോക്യുമെന്റേഷൻ കാണുക. ചുവടെയുള്ള ഫീഡ്uബാക്ക് ഫോം വഴി ചോദ്യങ്ങൾ ചോദിക്കാൻ മടിക്കരുത്.