Chuyển đến nội dung chính
Quay lại danh sách bài viết

ตั้ง NGINX Reverse Proxy ส่งคำขอไป Backend

reverse proxy รับคำขอจากผู้ใช้แล้วส่งต่อไปยังแอปปลายทาง อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

ตั้ง NGINX Reverse Proxy ส่งคำขอไป Backend

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

ภาพรวม

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

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

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

proxy_pass กำหนด upstream และ header ช่วยส่งข้อมูล host กับ client ให้บริการหลัง proxy

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

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

เหมาะกับการรวมหลายบริการหลังโดเมนเดียวและจัดการ TLS หน้าแอป

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

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

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

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

ข้อควรระวัง

ตั้ง timeout และ header ที่จำเป็นให้ครบ โดยเฉพาะการส่ง IP จริงและ scheme

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

สรุป

reverse proxy รับคำขอจากผู้ใช้แล้วส่งต่อไปยังแอปปลายทาง เหมาะกับการรวมหลายบริการหลังโดเมนเดียวและจัดการ TLS หน้าแอป ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

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

Chia sẻ bài viết:
Xem thêm bài viết