การตั้งค่าเซิร์ฟเวอร์ (Server Configuration)
การให้บริการไฟล์สแตติก (static files) เป็นส่วนสำคัญของการพัฒนาเว็บ คุณจำเป็นต้องส่งไฟล์ HTML, CSS, JS และรูปภาพไปยังผู้ใช้งานของคุณ
ในเฟรมเวิร์ก Hyperlane คุณสามารถทำสิ่งนี้ได้โดยใช้ middleware ซึ่ง middleware จะทำหน้าที่ดักจับคำขอ (requests) และอ่านไฟล์จากดิสก์ของคุณ
กระบวนการนี้ประกอบด้วยสี่ขั้นตอน:
- การระบุเส้นทาง (Path resolution): จับคู่ URL เข้ากับระบบไฟล์ของคุณ
- การตรวจหาประเภทเนื้อหา (Content type detection): ค้นหา MIME type ที่ถูกต้อง
- การอ่านไฟล์ (File reading): ดึงข้อมูลจากดิสก์
- การส่งการตอบกลับ (Response delivery): ส่งไฟล์ไปยังไคลเอนต์
Hyperlane ช่วยให้เรื่องนี้เป็นเรื่องง่ายด้วย utility FileExtension ซึ่งจะตรวจหาประเภทไฟล์โดยอัตโนมัติ เช่น:
• .html เป็น text/html
• .css เป็น text/css
• .js เป็น application/javascript
• .png เป็น image/png
แนวทางปฏิบัติที่ดีที่สุด (Best practices) สำหรับการให้บริการไฟล์สแตติก:
ใช้ asynchronous I/O ควรใช้
tokio::fsในการอ่านไฟล์เสมอ เพื่อป้องกันไม่ให้เซิร์ฟเวอร์ของคุณเกิดการบล็อก (blocking)จัดการคำขอแบบไดเรกทอรี (Directory requests) หากเส้นทาง (path) ลงท้ายด้วยเครื่องหมายสแลช (/) ให้มองหาไฟล์
index.htmlซึ่งจะช่วยให้การให้บริการเว็บไซต์เป็นไปอย่างถูกต้องตั้งค่า Header ให้ถูกต้อง ตรวจสอบให้แน่ใจว่าคุณส่ง
Content-Typeที่ถูกต้อง หากคุณให้บริการไฟล์แก่โดเมนอื่น ให้เพิ่ม CORS headers ด้วยความปลอดภัยและข้อผิดพลาด
- ตรวจสอบการมีอยู่ของไฟล์เพื่อส่งข้อผิดพลาด 404
- ทำความสะอาดเส้นทาง (Sanitize paths) เพื่อป้องกันการโจมตีแบบ directory traversal
- ใช้ authentication middleware หากไฟล์ทรัพยากร (assets) ของคุณเป็นแบบส่วนตัว
Hyperlane มอบเครื่องมือให้คุณสร้างเซิร์ฟเวอร์ไฟล์ที่มีประสิทธิภาพและปลอดภัย คุณสามารถใช้เครื่องมือเหล่านี้ร่วมกับ route filters เพื่อควบคุมได้อย่างแม่นยำว่าใครสามารถเข้าถึงไฟล์ของคุณได้บ้าง
Project Code: https://github.com/hyperlane-dev/hyperlane
Source: https://dev.to/tengxgfyrz67s/server-configuration-8i7