ಸರ್ವರ್ ಕಾನ್ಫಿಗರೇಶನ್

ಸ್ಟ್ಯಾಟಿಕ್ ಫೈಲ್‌ಗಳನ್ನು (static files) ಸರ್ವ್ ಮಾಡುವುದು ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ಒಂದು ಪ್ರಮುಖ ಭಾಗವಾಗಿದೆ. ನೀವು ನಿಮ್ಮ ಬಳಕೆದಾರರಿಗೆ HTML, CSS, JS ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ತಲುಪಿಸಬೇಕಾಗುತ್ತದೆ.

Hyperlane ಫ್ರೇಮ್‌ವರ್ಕ್‌ನಲ್ಲಿ, ನೀವು ಇದನ್ನು middleware ಬಳಸಿ ಮಾಡಬಹುದು. Middleware ವೊಂದು ವಿನಂತಿಗಳನ್ನು (requests) ಮಧ್ಯದಲ್ಲಿ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಡಿಸ್ಕ್‌ನಿಂದ ಫೈಲ್‌ಗಳನ್ನು ಓದುತ್ತದೆ.

ಈ ಪ್ರಕ್ರಿಯೆಯು ನಾಲ್ಕು ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:

  • ಪಾತ್ ರೆಸಲ್ಯೂಶನ್ (Path resolution): URLಗಳನ್ನು ನಿಮ್ಮ ಫೈಲ್ ಸಿಸ್ಟಮ್‌ಗೆ ಮ್ಯಾಪ್ ಮಾಡಿ.
  • ಕಂಟೆಂಟ್ ಟೈಪ್ ಡಿಟೆಕ್ಷನ್ (Content type detection): ಸರಿಯಾದ MIME ಪ್ರಕಾರವನ್ನು ಪತ್ತೆಹಚ್ಚಿ.
  • ಫೈಲ್ ರೀಡಿಂಗ್ (File reading): ಡಿಸ್ಕ್‌ನಿಂದ ಡೇಟಾವನ್ನು ಪಡೆಯಿರಿ.
  • ರೆಸ್ಪಾನ್ಸ್ ಡೆಲಿವರಿ (Response delivery): ಕ್ಲೈಂಟ್‌ಗೆ ಫೈಲ್ ಅನ್ನು ಕಳುಹಿಸಿ.

Hyperlane ತನ್ನ FileExtension ಯುಟಿಲಿಟಿ ಮೂಲಕ ಇದನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಈ ಕೆಳಗಿನ ಪ್ರಕಾರಗಳನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆ: • .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. ಸುರಕ್ಷತೆ ಮತ್ತು ದೋಷಗಳು

  • 404 ದೋಷಗಳನ್ನು (errors) ನೀಡಲು ಫೈಲ್ ಅಸ್ತಿತ್ವವನ್ನು ಪರಿಶೀಲಿಸಿ.
  • ಡೈರೆಕ್ಟರಿ ಟ್ರಾವರ್ಸಲ್ ದಾಳಿಗಳನ್ನು (directory traversal attacks) ತಡೆಯಲು ಪಾತ್‌ಗಳನ್ನು ಸ್ಯಾನಿಟೈಸ್ (sanitize) ಮಾಡಿ.
  • ನಿಮ್ಮ ಅಸೆಟ್‌ಗಳು ಖಾಸಗಿವಾಗಿದ್ದರೆ (private), ಅಥೆಂಟಿಕೇಶನ್ middleware ಬಳಸಿ.

ದಕ್ಷ ಮತ್ತು ಸುರಕ್ಷಿತ ಫೈಲ್ ಸರ್ವರ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು Hyperlane ನಿಮಗೆ ಅಗತ್ಯವಾದ ಪರಿಕರಗಳನ್ನು ನೀಡುತ್ತದೆ. ನಿಮ್ಮ ಫೈಲ್‌ಗಳನ್ನು ಯಾರು ನೋಡಬಹುದು ಎಂಬುದನ್ನು ನಿಖರವಾಗಿ ನಿಯಂತ್ರಿಸಲು ನೀವು ಈ ಪರಿಕರಗಳನ್ನು ರೂಟ್ ಫಿಲ್ಟರ್‌ಗಳೊಂದಿಗೆ (route filters) ಸಂಯೋಜಿಸಬಹುದು.

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

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