സെർവർ കോൺഫിഗറേഷൻ

സ്റ്റാറ്റിക് ഫയലുകൾ സർവ് ചെയ്യുന്നത് വെബ് ഡെവലപ്‌മെന്റിന്റെ ഒരു പ്രധാന ഭാഗമാണ്. നിങ്ങളുടെ ഉപയോക്താക്കൾക്ക് HTML, CSS, JS, ഇമേജുകൾ എന്നിവ എത്തിക്കേണ്ടതുണ്ട്.

Hyperlane ഫ്രെയിംവർക്കിൽ, മിഡിൽവെയർ (middleware) ഉപയോഗിച്ചാണ് നിങ്ങൾ ഇത് ചെയ്യുന്നത്. മിഡിൽവെയർ റിക്വസ്റ്റുകൾ തടഞ്ഞുനിർത്തുകയും നിങ്ങളുടെ ഡിസ്കിൽ നിന്ന് ഫയലുകൾ വായിക്കുകയും ചെയ്യുന്നു.

ഈ പ്രക്രിയയിൽ നാല് ഘട്ടങ്ങളുണ്ട്:

  • പാത്ത് റെസല്യൂഷൻ (Path resolution): URL-കളെ നിങ്ങളുടെ ഫയൽ സിസ്റ്റവുമായി ബന്ധിപ്പിക്കുക.
  • കണ്ടന്റ് ടൈപ്പ് ഡിറ്റക്ഷൻ (Content type detection): ശരിയായ MIME ടൈപ്പ് കണ്ടെത്തുക.
  • ഫയൽ റീഡിംഗ് (File reading): ഡിസ്കിൽ നിന്ന് ഡാറ്റ എടുക്കുക.
  • റെസ്പോൺസ് ഡെലിവറി (Response delivery): ഫയൽ ക്ലയന്റിലേക്ക് അയക്കുക.

FileExtension യൂട്ടിലിറ്റി ഉപയോഗിച്ച് Hyperlane ഇത് എളുപ്പമാക്കുന്നു. ഇത് താഴെ പറയുന്ന തരത്തിലുള്ളവ സ്വയം തിരിച്ചറിയുന്നു: • .html എന്നത് text/html ആയി • .css എന്നത് text/css ആയി • .js എന്നത് application/javascript ആയി • .png എന്നത് image/png ആയി

സ്റ്റാറ്റിക് ഫയൽ സർവിംഗിനായുള്ള മികച്ച രീതികൾ:

  1. അസിൻക്രണസ് I/O ഉപയോഗിക്കുക ഫയലുകൾ വായിക്കാൻ എപ്പോഴും tokio::fs ഉപയോഗിക്കുക. ഇത് നിങ്ങളുടെ സെർവർ ബ്ലോക്ക് ചെയ്യുന്നത് തടയുന്നു.

  2. ഡയറക്ടറി റിക്വസ്റ്റുകൾ കൈകാര്യം ചെയ്യുക ഒരു പാത്ത് സ്ലാഷിൽ (slash) അവസാനിക്കുന്നുണ്ടെങ്കിൽ, ഒരു index.html ഫയൽ തിരയുക. ഇത് വെബ്‌സൈറ്റുകൾ ശരിയായി സർവ് ചെയ്യാൻ സഹായിക്കുന്നു.

  3. ശരിയായ ഹെഡറുകൾ സെറ്റ് ചെയ്യുക ശരിയായ Content-Type അയക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക. നിങ്ങൾ മറ്റ് ഡൊമെയ്‌നുകളിലേക്ക് ഫയലുകൾ സർവ് ചെയ്യുന്നുണ്ടെങ്കിൽ, CORS ഹെഡറുകൾ ചേർക്കുക.

  4. സുരക്ഷയും പിശകുകളും (Security and errors)

  • 404 എററുകൾ നൽകുന്നതിനായി ഫയൽ ഉണ്ടോ എന്ന് പരിശോധിക്കുക.
  • ഡയറക്ടറി ട്രാവേഴ്സൽ ആക്രമണങ്ങൾ (directory traversal attacks) തടയാൻ പാത്തുകൾ സാനിറ്റൈസ് (sanitize) ചെയ്യുക.
  • നിങ്ങളുടെ അസറ്റുകൾ സ്വകാര്യമാണെങ്കിൽ ഓതന്റിക്കേഷൻ മിഡിൽവെയർ ഉപയോഗിക്കുക.

കാര്യക്ഷമവും സുരക്ഷിതവുമായ ഫയൽ സെർവറുകൾ നിർമ്മിക്കുന്നതിനുള്ള ടൂളുകൾ Hyperlane നിങ്ങൾക്ക് നൽകുന്നു. നിങ്ങളുടെ ഫയലുകൾ ആർക്കൊക്കെ കാണാം എന്ന് കൃത്യമായി നിയന്ത്രിക്കുന്നതിന് ഈ ടൂളുകളെ റൂട്ട് ഫിൽട്ടറുകളുമായി (route filters) സംയോജിപ്പിക്കാം.

Project Code: https://github.com/hyperlane-dev/hyperlane

Source: https://dev.to/tengxgfyrz67s/server-configuration-8i7