メインコンテンツへスキップ
記事一覧へ戻る

ให้ NGINX เสิร์ฟไฟล์ Static พร้อม Cache Header

NGINX เสิร์ฟไฟล์จากดิสก์และตั้งค่า header ให้ browser cache ได้ อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

ให้ NGINX เสิร์ฟไฟล์ Static พร้อม Cache Header

NGINX เสิร์ฟไฟล์จากดิสก์และตั้งค่า header ให้ browser cache ได้ เหมาะกับไฟล์ CSS JavaScript และภาพที่ไม่ต้องผ่านแอปทุกครั้ง บทความนี้สรุปแนวคิดจากเอกสารทางการของ NGINX และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

NGINX รับและจัดเส้นทาง HTTP ก่อนถึงแอป การตั้ง location, upstream, header, timeout และ log มีผลต่อความถูกต้อง ความเร็ว และความปลอดภัยของบริการ

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: NGINX เสิร์ฟไฟล์จากดิสก์และตั้งค่า header ให้ browser cache ได้ จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

location จับ path แล้วส่งไฟล์ตรงจาก root หรือ alias ตามการตั้งค่า

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับไฟล์ CSS JavaScript และภาพที่ไม่ต้องผ่านแอปทุกครั้ง

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. ตรวจไฟล์ตั้งค่าด้วย nginx -t ก่อน reload
  2. ทดสอบ URL และ header ทั้งเส้นทางที่ถูกและควรถูกปฏิเสธ
  3. ดู access log, error log และเวลา upstream หลังเปลี่ยนค่า

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

ไฟล์ที่ cache นานควรมีชื่อแบบ fingerprint เพื่อให้ผู้ใช้ได้เวอร์ชันใหม่

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

NGINX เสิร์ฟไฟล์จากดิสก์และตั้งค่า header ให้ browser cache ได้ เหมาะกับไฟล์ CSS JavaScript และภาพที่ไม่ต้องผ่านแอปทุกครั้ง ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ NGINX