สรุปความแตกต่างระหว่าง Reverse Proxy กับ Forward Proxy ไว้ว่าเป็นต่างกันอย่างไร

Forward Proxy หรือ Proxy ปกติ

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

โดยจะผ่านการใช้ Proxy โดยผู้ใช้งานส่งคำขอไปยัง Forward Proxy และตัว Proxy ก็จะส่งคำขอนั้นให้กับเว็บไซต์หรือข้อมูลที่ต้องการ ข้อมูลที่ได้รับกลับมาจากเว็บไซต์ก็จะถูกส่งกลับมายังผู้ใช้งานผ่าน Forward Proxy

เมื่อก่อน Forward proxy ถูกใช้แพร่หลายในการทำให้คอมพิวเตอร์หลายๆ เครื่องที่อยู่ใน networks เดียวกันต่อ internet ได้ จนกระทั่งการมาของ NAT

Forward Proxy สามารถทำตัวเป็น Cache Server ได้อีกด้วย ในบางองค์กรอาจจะมีการ Cache dependency ของ library เก็บไว้เพื่อไม่ต้องออก network ด้านนอกบ่อยๆ

ข้อควรระวัง
หากเราไปใช้ Forward Proxy ของภายนอก ต้องระวัง เพราะอาจมีผู้ไม่หวังดี log ข้อมูลที่วิ่งเข้าออก ผ่าน proxy เหล่านี้ไปทำอย่างอื่นก็เป็นได้ (ของฟรีไม่มีในโลก)


Reverse Proxy

การใช้งาน คือ การที่ผู้ใช้งานภายนอกองค์กร (หรือจากอินเทอร์เน็ต) ต้องการเข้าถึงเซิร์ฟเวอร์ ที่อยู่ภายในองค์กร ผู้ใช้งานส่งคำขอไปยัง Reverse Proxy และตัว Reverse Proxy จะส่งคำขอนั้น ให้กับเซิร์ฟเวอร์ภายในที่เหมาะสม

เมื่อได้ข้อมูลแล้ว เซิร์ฟเวอร์ภายใน ก็จะส่งข้อมูลกลับมายัง Reverse Proxy และ Reverse Proxy จะส่งข้อมูลนั้นกลับมายังผู้ใช้งาน ซึ่งผู้ใช้จะไม่รู้เลยว่า web ที่เข้าใช้งานอยู่นี้ มี proxy หรือไม่

Reverse proxy ใช้สำหรับเป็นฉากหน้าไว้คุยกับ network ภายนอก ทำหน้าที่เป็น load balancing และทำให้ระบบ high availability

ประโยชน์ของ Reverse Proxy

  • Load Balancing: กระจายภาระของการทำงานให้กับหลายเซิร์ฟเวอร์
  • Caching: เก็บข้อมูลที่ถูกขอมาบ่อย ๆ ในความจำเพื่อการดึงข้อมูลเร็วขึ้น
  • SSL Termination: การจัดการการเข้ารหัส SSL ที่ Reverse Proxy แทนที่จะทำในเซิร์ฟเวอร์ภายใน
  • Protection: ป้องกันเซิร์ฟเวอร์ภายในจากการเข้าถึงโดยตรงจากผู้ใช้งานภายนอก

https://www.theserverside.com/feature/Forward-proxy-vs-reverse-proxy-Whats-the-difference

เมื่อเราพูดถึง "Proxy ปกติ" เรามักจะ หมายถึง Forward Proxy ซึ่งทำหน้าที่เป็นตัวกลางระหว่างผู้ใช้งานกับอินเทอร์เน็ต (ถูกใช้โดย Client)

ในขณะที่ Reverse Proxy ทำหน้าที่เป็นตัวกลางระหว่างผู้ใช้งานจากอินเทอร์เน็ตกับเซิร์ฟเวอร์ภายในขององค์กร (ถูกใช้โดย server)