Nginx, Gzip മൊഡ്യൂൾ ഉപയോഗിച്ച് വെബ്uസൈറ്റുകൾ വേഗത്തിലാക്കുന്നത് എങ്ങനെയെന്ന് അറിയുക


ലോകമെമ്പാടും കാര്യമായ ഇന്റർനെറ്റ് വേഗത ലഭ്യമാകുന്ന ഒരു കാലഘട്ടത്തിൽ പോലും, വെബ്uസൈറ്റ് ലോഡ് സമയം ഒപ്റ്റിമൈസ് ചെയ്യാനുള്ള എല്ലാ ശ്രമങ്ങളും തുറന്ന കൈകളോടെ സ്വാഗതം ചെയ്യുന്നു.

ഈ ലേഖനത്തിൽ, കംപ്രഷൻ വഴി ഫയൽ വലുപ്പം കുറച്ചുകൊണ്ട് ട്രാൻസ്ഫർ വേഗത വർദ്ധിപ്പിക്കുന്നതിനുള്ള ഒരു രീതി ഞങ്ങൾ ചർച്ച ചെയ്യും. ഈ സമീപനം ഒരു അധിക നേട്ടം നൽകുന്നു, ഇത് പ്രക്രിയയിൽ ഉപയോഗിക്കുന്ന ബാൻഡ്uവിഡ്uത്തിന്റെ അളവ് കുറയ്ക്കുകയും അതിന് പണം നൽകുന്ന വെബ്uസൈറ്റ് ഉടമയ്ക്ക് ഇത് വിലകുറഞ്ഞതാക്കുകയും ചെയ്യുന്നു.

മുകളിലുള്ള ഖണ്ഡികയിൽ പറഞ്ഞിരിക്കുന്ന ലക്ഷ്യം നിറവേറ്റുന്നതിന്, ഈ ലേഖനത്തിൽ ഞങ്ങൾ Nginx ഉം അതിന്റെ അന്തർനിർമ്മിത gzip മൊഡ്യൂളും ഉപയോഗിക്കും. ഔദ്യോഗിക ഡോക്യുമെന്റേഷൻ പറയുന്നതുപോലെ, അറിയപ്പെടുന്ന ജിസിപ്പ് കംപ്രഷൻ രീതി ഉപയോഗിച്ച് പ്രതികരണങ്ങൾ കംപ്രസ് ചെയ്യുന്ന ഒരു ഫിൽട്ടറാണ് ഈ മൊഡ്യൂൾ. കൈമാറ്റം ചെയ്യപ്പെടുന്ന ഡാറ്റയുടെ വലുപ്പം പകുതിയോ അതിലധികമോ കംപ്രസ് ചെയ്യപ്പെടുമെന്ന് ഇത് ഉറപ്പാക്കുന്നു.

നിങ്ങൾ ഈ പോസ്റ്റിന്റെ അടിയിൽ എത്തുമ്പോഴേക്കും, നിങ്ങളുടെ വെബ്uസൈറ്റുകളും ആപ്ലിക്കേഷനുകളും നൽകുന്നതിന് Nginx ഉപയോഗിക്കുന്നത് പരിഗണിക്കുന്നതിന് നിങ്ങൾക്ക് മറ്റൊരു കാരണമുണ്ട്.

Nginx വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു

എല്ലാ പ്രധാന ആധുനിക വിതരണങ്ങൾക്കും Nginx ലഭ്യമാണ്. ഈ ലേഖനത്തിനായി ഞങ്ങൾ CentOS 7 വെർച്വൽ മെഷീൻ (IP 192.168.0.29) ഉപയോഗിക്കുമെങ്കിലും.

താഴെ നൽകിയിരിക്കുന്ന നിർദ്ദേശങ്ങൾ മറ്റ് വിതരണങ്ങളിലും ചെറിയ (എന്തെങ്കിലും ഉണ്ടെങ്കിൽ) മാറ്റങ്ങൾ വരുത്തി പ്രവർത്തിക്കും. നിങ്ങളുടെ VM ഒരു പുതിയ ഇൻസ്റ്റാളാണെന്ന് അനുമാനിക്കപ്പെടുന്നു; അല്ലെങ്കിൽ, നിങ്ങളുടെ മെഷീനിൽ മറ്റ് വെബ് സെർവറുകൾ (അപ്പാച്ചെ പോലുള്ളവ) പ്രവർത്തിക്കുന്നില്ലെന്ന് ഉറപ്പാക്കേണ്ടതുണ്ട്.

ആവശ്യമായ ഡിപൻഡൻസികൾക്കൊപ്പം Nginx ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക:

----------- On CentOS/RHEL 7 and Fedora 22-24 ----------- 
# yum update && yum install nginx

----------- On Debian and Ubuntu Distributions ----------- 
# apt update && apt install nginx

ഇൻസ്റ്റാളേഷൻ വിജയകരമായി പൂർത്തിയാക്കിയിട്ടുണ്ടെന്നും Nginx-ന് ഫയലുകൾ സെർവ് ചെയ്യാനാകുമെന്നും പരിശോധിക്കാൻ, വെബ് സെർവർ ആരംഭിക്കുക:

# systemctl start nginx
# systemctl enable nginx

തുടർന്ന് ഒരു വെബ് ബ്രൗസർ തുറന്ന് http://192.168.0.29 എന്നതിലേക്ക് പോകുക (നിങ്ങളുടെ സെർവറിന്റെ IP വിലാസമോ ഹോസ്റ്റ്നാമോ ഉപയോഗിച്ച് 192.168.0.29 മാറ്റിസ്ഥാപിക്കാൻ മറക്കരുത്). നിങ്ങൾ സ്വാഗത പേജ് കാണണം:

ചില ഫയൽ തരങ്ങൾ മറ്റുള്ളവയേക്കാൾ നന്നായി കംപ്രസ് ചെയ്യാൻ കഴിയുമെന്ന് നാം ഓർക്കണം. പ്ലെയിൻ ടെക്uസ്uറ്റ് ഫയലുകൾ (HTML, CSS, JavaScript ഫയലുകൾ പോലെയുള്ളവ) നന്നായി കംപ്രസ്സുചെയ്യുമ്പോൾ മറ്റുള്ളവ (.iso ഫയലുകൾ, ടാർബോളുകൾ, ചിത്രങ്ങൾ, ചിലത്) കംപ്രസ്സുചെയ്യുന്നില്ല, കാരണം അവ ഇതിനകം തന്നെ കംപ്രസ് ചെയ്uതിരിക്കുന്നു.

അതിനാൽ, Nginx, gzip എന്നിവയുടെ സംയോജനം മുമ്പത്തേതിന്റെ ട്രാൻസ്ഫർ വേഗത വർദ്ധിപ്പിക്കാൻ ഞങ്ങളെ അനുവദിക്കുമെന്ന് പ്രതീക്ഷിക്കാം, അതേസമയം രണ്ടാമത്തേത് കാര്യമായ പുരോഗതി കാണിക്കുകയോ ഇല്ലാതിരിക്കുകയോ ചെയ്യാം.

ജിസിപ്പ് മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, HTML ഫയലുകൾ എല്ലായ്പ്പോഴും കംപ്രസ്സുചെയ്യും, എന്നാൽ വെബ്uസൈറ്റുകളിലും ആപ്ലിക്കേഷനുകളിലും (അതായത്, CSS, JavaScript) സാധാരണയായി കാണപ്പെടുന്ന മറ്റ് ഫയൽ തരങ്ങൾ അങ്ങനെയല്ല എന്നതും ഓർമിക്കേണ്ടതാണ്.

gzip മൊഡ്യൂൾ ഇല്ലാതെ Nginx വെബ്uസൈറ്റ് വേഗത പരിശോധിക്കുന്നു

ആരംഭിക്കുന്നതിന്, HTML, CSS, JavaScript ഫയലുകളുടെ മികച്ച സംയോജനമായ ഒരു സമ്പൂർണ്ണ ബൂട്ട്സ്ട്രാപ്പ് ടെംപ്ലേറ്റ് ഡൗൺലോഡ് ചെയ്യാം.

കംപ്രസ് ചെയ്uത ഫയൽ ഡൗൺലോഡ് ചെയ്uത ശേഷം, ഞങ്ങൾ അത് ഞങ്ങളുടെ സെർവർ ബ്ലോക്കിന്റെ റൂട്ട് ഡയറക്uടറിയിലേക്ക് അൺസിപ്പ് ചെയ്യും (ഇത് ഒരു അപ്പാച്ചെ വെർച്വൽ ഹോസ്റ്റ് ഡിക്ലറേഷനിലെ ഡോക്യുമെന്റ് റൂട്ട് ഡയറക്uറ്റീവിന് തുല്യമായ Nginx ആണെന്ന് ഓർക്കുക):

# cd /var/www/html
# wget https://github.com/BlackrockDigital/startbootstrap-creative/archive/gh-pages.zip
# unzip -a gh-pages.zip
# mv startbootstrap-creative-gh-pages tecmint

നിങ്ങൾക്ക് /var/www/html/tecmint ഉള്ളിൽ ഇനിപ്പറയുന്ന ഡയറക്uടറി ഘടന ഉണ്ടായിരിക്കണം:

# ls -l /var/www/html/tecmint

ഇപ്പോൾ http://192.168.0.29/tecmint എന്നതിലേക്ക് പോയി പേജ് ശരിയായി ലോഡ് ചെയ്യുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക. മിക്ക ആധുനിക ബ്രൗസറും ഒരു കൂട്ടം ഡെവലപ്പർ ടൂളുകൾ ഉൾക്കൊള്ളുന്നു. ഫയർഫോക്സിൽ, നിങ്ങൾക്ക് ഇത് Tools → Web Developer മെനു വഴി തുറക്കാം.

ഞങ്ങളുടെ കമ്പ്യൂട്ടറിനും ലോക്കൽ നെറ്റ്uവർക്കിനും ഇന്റർനെറ്റിനും ഇടയിൽ നടക്കുന്ന എല്ലാ നെറ്റ്uവർക്ക് അഭ്യർത്ഥനകളും നിരീക്ഷിക്കാൻ ഞങ്ങളെ അനുവദിക്കുന്ന നെറ്റ്uവർക്ക് ഉപമെനുവിൽ ഞങ്ങൾക്ക് പ്രത്യേക താൽപ്പര്യമുണ്ട്.

ഡെവലപ്പർ ടൂളുകളിൽ നെറ്റ്uവർക്ക് മെനു തുറക്കുന്നതിനുള്ള ഒരു കുറുക്കുവഴി Ctrl + Shift + Q ആണ്. ആ കീ കോമ്പിനേഷൻ അമർത്തുക അല്ലെങ്കിൽ അത് തുറക്കാൻ മെനു ബാർ ഉപയോഗിക്കുക.

HTML, CSS, JavaScript ഫയലുകളുടെ കൈമാറ്റം പരിശോധിക്കാൻ ഞങ്ങൾക്ക് താൽപ്പര്യമുള്ളതിനാൽ, ചുവടെയുള്ള ബട്ടണുകളിൽ ക്ലിക്ക് ചെയ്ത് പേജ് പുതുക്കുക. പ്രധാന സ്ക്രീനിൽ എല്ലാ HTML, CSS, JavaScript ഫയലുകളുടെയും കൈമാറ്റത്തിന്റെ വിശദാംശങ്ങൾ നിങ്ങൾ കാണും:

വലുപ്പ നിരയുടെ വലതുവശത്ത് (ഇത് വ്യക്തിഗത ഫയൽ വലുപ്പങ്ങൾ കാണിക്കുന്നു) നിങ്ങൾ വ്യക്തിഗത കൈമാറ്റ സമയങ്ങൾ കാണും. Timings ടാബിൽ കൂടുതൽ വിശദാംശങ്ങൾ കാണുന്നതിന് നിങ്ങൾക്ക് നൽകിയിരിക്കുന്ന ഏതെങ്കിലും ഫയലിൽ ഡബിൾ ക്ലിക്ക് ചെയ്യാം.

മുകളിലെ ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്ന സമയങ്ങളുടെ കുറിപ്പുകൾ നിങ്ങൾ എടുക്കുന്നുവെന്ന് ഉറപ്പാക്കുക, അതുവഴി ഞങ്ങൾ gzip മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കിയാൽ അതേ കൈമാറ്റവുമായി നിങ്ങൾക്ക് അവയെ താരതമ്യം ചെയ്യാം.

Nginx-ൽ gzip മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കുകയും ക്രമീകരിക്കുകയും ചെയ്യുന്നു

ജിസിപ്പ് മൊഡ്യൂൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിനും കോൺഫിഗർ ചെയ്യുന്നതിനും, /etc/nginx/nginx.conf തുറക്കുക, ചുവടെയുള്ള ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ പ്രധാന സെർവർ ബ്ലോക്ക് കണ്ടെത്തുക, തുടർന്ന് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക അല്ലെങ്കിൽ പരിഷ്uക്കരിക്കുക (മറക്കരുത് അവസാനം അർദ്ധവിരാമം അല്ലെങ്കിൽ Nginx പിന്നീട് പുനരാരംഭിക്കുമ്പോൾ ഒരു പിശക് സന്ദേശം നൽകും!)

root     	/var/www/html;
gzip on;
gzip_types text/plain image/jpeg image/png text/css text/javascript;

gzip നിർദ്ദേശം gzip മൊഡ്യൂൾ ഓണാക്കുകയോ ഓഫാക്കുകയോ ചെയ്യുന്നു, അതേസമയം gzip_types മൊഡ്യൂൾ കൈകാര്യം ചെയ്യേണ്ട എല്ലാ MIME തരങ്ങളും ലിസ്റ്റുചെയ്യാൻ ഉപയോഗിക്കുന്നു.

MIME തരങ്ങളെക്കുറിച്ച് കൂടുതലറിയാനും ലഭ്യമായ തരങ്ങൾ കാണാനും, Basics_of_HTTP_MIME_types എന്നതിലേക്ക് പോകുക.

Gzip കംപ്രഷൻ മൊഡ്യൂൾ ഉപയോഗിച്ച് Nginx വെബ്uസൈറ്റ് വേഗത പരിശോധിക്കുന്നു

മുകളിലുള്ള ഘട്ടങ്ങൾ പൂർത്തിയാക്കിക്കഴിഞ്ഞാൽ, നമുക്ക് Nginx പുനരാരംഭിച്ച് Ctrl + F5 അമർത്തി പേജ് വീണ്ടും ലോഡുചെയ്യാം (വീണ്ടും, ഇത് Firefox-ൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ നിങ്ങൾ മറ്റൊരു ബ്രൗസറാണ് ഉപയോഗിക്കുന്നതെങ്കിൽ, ആദ്യം അനുബന്ധ ഡോക്യുമെന്റേഷൻ പരിശോധിക്കുക) കാഷെ അസാധുവാക്കാനും ട്രാൻസ്ഫർ സമയം നിരീക്ഷിക്കാനും:

# systemctl restart nginx

നെറ്റ്uവർക്ക് അഭ്യർത്ഥന ടാബ് ചില കാര്യമായ മെച്ചപ്പെടുത്തലുകൾ കാണിക്കുന്നു. ഞങ്ങളുടെ കമ്പ്യൂട്ടറിനും 192.168.0.29-നും ഇടയിലുള്ള കൈമാറ്റങ്ങളാണ് (Google സെർവറുകൾക്കും CDN-കൾക്കും ഇടയിലുള്ള കൈമാറ്റങ്ങൾ ഞങ്ങൾക്ക് പിടികിട്ടാത്തതാണ്):

ഉദാഹരണത്തിന്, gzip പ്രവർത്തനക്ഷമമാക്കുന്നതിന് മുമ്പോ ശേഷമോ ഇനിപ്പറയുന്ന ഫയൽ കൈമാറ്റ ഉദാഹരണങ്ങൾ നോക്കാം. സമയം മില്ലിസെക്കൻഡിൽ നൽകിയിരിക്കുന്നു:

  1. index.html (ലിസ്റ്റിന്റെ മുകളിൽ /tecmint/ പ്രതിനിധീകരിക്കുന്നത്): 15/4
  2. Creative.min.css: 18/8
  3. jquery.min.js: 17/7

ഇത് നിങ്ങളെ Nginx-നെ കൂടുതൽ സ്നേഹിക്കാൻ പ്രേരിപ്പിക്കുന്നില്ലേ? എന്നെ സംബന്ധിച്ചിടത്തോളം, അത് ചെയ്യുന്നു!

സംഗ്രഹം

ഫയൽ കൈമാറ്റം വേഗത്തിലാക്കാൻ നിങ്ങൾക്ക് Nginx gzip മൊഡ്യൂൾ ഉപയോഗിക്കാമെന്ന് ഈ ലേഖനത്തിൽ ഞങ്ങൾ തെളിയിച്ചിട്ടുണ്ട്. gzip മൊഡ്യൂളിനുള്ള ഔദ്യോഗിക ഡോക്യുമെന്റേഷൻ നിങ്ങൾ പരിശോധിക്കാൻ ആഗ്രഹിക്കുന്ന മറ്റ് കോൺഫിഗറേഷൻ നിർദ്ദേശങ്ങൾ പട്ടികപ്പെടുത്തുന്നു.

കൂടാതെ, മോസില്ല ഡെവലപ്പർ നെറ്റ്uവർക്ക് വെബ്uസൈറ്റിൽ നെറ്റ്uവർക്ക് മോണിറ്ററിനെക്കുറിച്ചുള്ള ഒരു എൻട്രി ഉണ്ട്, അത് ഒരു നെറ്റ്uവർക്ക് അഭ്യർത്ഥനയിൽ തിരശ്ശീലയ്ക്ക് പിന്നിൽ എന്താണ് സംഭവിക്കുന്നതെന്ന് മനസിലാക്കാൻ ഈ ഉപകരണം എങ്ങനെ ഉപയോഗിക്കാമെന്ന് വിശദീകരിക്കുന്നു.

എല്ലായ്പ്പോഴും എന്നപോലെ, ഈ ലേഖനത്തെക്കുറിച്ച് നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കാൻ മടിക്കേണ്ടതില്ല. നിങ്ങളിൽ നിന്ന് കേൾക്കാൻ ഞങ്ങൾ എപ്പോഴും കാത്തിരിക്കുകയാണ്!