วิธีกำหนดค่า HAProxy เป็น Reverse Proxy

Withi Kahnd Kha Haproxy Pen Reverse Proxy



เมื่อคุณมีเว็บเซิร์ฟเวอร์ การมีวิธีส่งต่อคำขอของลูกค้าและการตอบกลับของเซิร์ฟเวอร์จะช่วยกระจายการรับส่งข้อมูลและเพิ่มความปลอดภัย Reverse Proxy เช่น HAProxy ทำหน้าที่เป็นตัวกลางระหว่างเว็บแอปพลิเคชันของคุณและอุปกรณ์ไคลเอนต์เมื่อกำหนดค่า ด้วยวิธีนี้ มันจะได้รับคำขอของลูกค้าและส่งต่อไปยังเว็บเซิร์ฟเวอร์ที่เหมาะสม ในขณะเดียวกันก็รับการตอบสนองของเซิร์ฟเวอร์และส่งไปยังไคลเอนต์ การกำหนดค่า HAProxy บนฝั่งเซิร์ฟเวอร์ของคุณให้ทำหน้าที่เป็นพร็อกซีย้อนกลับนั้นเป็นกระบวนการที่ไม่ซับซ้อน โพสต์นี้มีรายละเอียดขั้นตอนที่คุณควรทำ

เหตุใดจึงต้องใช้ Reverse Proxy?

ก่อนที่จะพูดถึงขั้นตอนในการกำหนดค่า HAProxy เป็นพร็อกซีย้อนกลับ เรามาเน้นกันอย่างรวดเร็วว่าเหตุใด Reverse Proxy จึงทำงานเพื่อประโยชน์ของคุณ ต่อไปนี้เป็นประโยชน์ที่คุณจะได้รับจากการใช้ HAProxy เป็นพร็อกซีย้อนกลับ:

  1. โหลดบาลานซ์ – เว็บเซิร์ฟเวอร์ของคุณสามารถมีกรณีของคำขอของลูกค้าจำนวนมากซึ่งหากไม่ได้รับการจัดการอย่างดีก็อาจโอเวอร์โหลดซึ่งทำให้ระบบหยุดทำงานโดยไม่คาดคิด อย่างไรก็ตาม การกำหนดค่าพร็อกซีย้อนกลับทำให้มั่นใจได้ว่าการรับส่งข้อมูลจะถูกกระจายไปยังเซิร์ฟเวอร์แบ็กเอนด์ เพื่อให้แน่ใจว่าไม่มีเซิร์ฟเวอร์ใดได้รับคำขอมากเกินไป
  2. ไฟร์วอลล์และความปลอดภัย – พร็อกซีย้อนกลับเชื่อมต่ออุปกรณ์ไคลเอนต์กับเว็บเซิร์ฟเวอร์ การทำเช่นนี้จะช่วยลดความเสี่ยงในการเปิดเผยเซิร์ฟเวอร์แบ็กเอนด์ของเรากับอินเทอร์เน็ตโดยตรง ด้วยวิธีนี้ ทราฟฟิกที่เป็นอันตรายจึงสามารถกรองและบล็อกได้อย่างง่ายดายก่อนที่เซิร์ฟเวอร์จะเสียหาย
  3. แคชที่ดีขึ้น – ด้วย Reverse Proxy คุณจะสังเกตเห็นการปรับปรุงประสิทธิภาพโดยรวม เนื่องจากเวลาในการโหลดจะลดลงโดยการแคชเนื้อหาคงที่ นอกจากนี้คุณยังจะได้รับประสบการณ์การใช้งานที่ดีขึ้นอีกด้วย
  4. การยกเลิก SSL/TLS – ด้วยพร็อกซีย้อนกลับ การเข้ารหัสและถอดรหัสการเชื่อมต่อ SSL/TLS จะราบรื่น และเซิร์ฟเวอร์แบ็กเอนด์ของคุณจะไม่ต้องแบกรับงานนี้ ซึ่งช่วยลดภาระงาน

วิธีกำหนดค่า HAProxy เป็น Reverse Proxy

หลังจากอธิบายว่าทำไมพร็อกซีย้อนกลับเช่น HAProxy จึงมีความสำคัญ เรามาทำตามขั้นตอนการกำหนดค่ากัน







ขั้นตอนที่ 1: ติดตั้ง HAProxy



คุณอาจติดตั้ง HAProxy ไว้ในระบบของคุณแล้ว หากเป็นเช่นนั้น ให้ข้ามขั้นตอนนี้ อย่างไรก็ตาม สำหรับมือใหม่ ให้รันคำสั่งต่อไปนี้เพื่อติดตั้ง HAProxy:



$ sudo apt ติดตั้ง haproxy

เราได้ติดตั้งไว้แล้วในกรณีของเรา





ขั้นตอนที่ 2: แก้ไขไฟล์การกำหนดค่า HAProxy



HAProxy มีไฟล์การกำหนดค่าที่คุณต้องเข้าถึงและแก้ไขเพื่อกำหนดค่าเป็นพร็อกซีย้อนกลับของคุณ เริ่มต้นด้วยการเปิดไฟล์กำหนดค่าโดยใช้โปรแกรมแก้ไขข้อความ

$ sudo นาโน /etc/haproxy/haproxy.cfg

เมื่อเปิดขึ้น โปรดทราบว่ามีการกำหนดค่าพื้นฐานสำหรับส่วนเริ่มต้นและส่วนกลาง จากนั้นเราจะต้องสร้างส่วนเพิ่มเติมอีกสองส่วน: ส่วนหน้าและส่วนหลัง ส่วนหน้าจะกำหนดอินเทอร์เฟซที่ควรรับคำขอของไคลเอ็นต์ ในขณะที่ส่วนหลังจะระบุเซิร์ฟเวอร์ที่จะจัดการการรับส่งข้อมูล

สำหรับตัวอย่างนี้ เรากำหนดค่าส่วนหน้าให้ยอมรับคำขอไคลเอ็นต์จากพอร์ต 80 และ 81 จากนั้นเราสร้างกฎเพื่อกระจายการรับส่งข้อมูลเพื่อให้การเชื่อมต่อจากพอร์ต 80 ถูกกำหนดเส้นทางไปยังเซิร์ฟเวอร์เฉพาะ ในขณะที่การเชื่อมต่อจากพอร์ต 81 ไปที่เซิร์ฟเวอร์อื่น เซิร์ฟเวอร์ ส่วนหน้าของเรามีดังต่อไปนี้:

เนื่องจากเราสร้างเซิร์ฟเวอร์แบ็กเอนด์สองเซิร์ฟเวอร์ คือ แบ็กเอนด์2 และ linux_backend เราจึงต้องสร้างส่วนแบ็กเอนด์สำหรับทั้งสองเซิร์ฟเวอร์ เราระบุ IP ที่จะกระจายการรับส่งข้อมูลไปยัง “เซิร์ฟเวอร์1” และ “เซิร์ฟเวอร์2” ของเราสำหรับแต่ละ IP

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

ขั้นตอนที่ 3: ตรวจสอบความถูกต้อง

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

$ sudo haproxy -c -f /etc/haproxy/haproxy.cfg

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

ขั้นตอนที่ 4: ทดสอบ Reverse Proxy

การใช้คำสั่งเช่น “curl” คุณสามารถส่งการรับส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์ของคุณและดูว่ามันตอบสนองอย่างไร ในกรณีของเรา เราใช้ Python3 เพื่อสร้างเว็บเซิร์ฟเวอร์

การรันคำสั่ง “curl” เป็นการยืนยันว่าเว็บเซิร์ฟเวอร์ของเรากำลังฟังพอร์ตที่ระบุ และ HAProxy ได้กระจายการรับส่งข้อมูลไปยังเซิร์ฟเวอร์ที่ระบุตามไฟล์การกำหนดค่าของเรา

คุณยังสามารถเข้าถึงเว็บเซิร์ฟเวอร์ของคุณบนเบราว์เซอร์และยืนยันว่าพร็อกซีย้อนกลับใช้งานได้

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

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

นั่นคือวิธีกำหนดค่า HAProxy เป็นพร็อกซีย้อนกลับ

บทสรุป

HAProxy เป็นตัวเลือกที่ยอดเยี่ยมสำหรับ Reverse Proxy สำหรับเว็บเซิร์ฟเวอร์ของคุณ การกำหนดค่านั้นตรงไปตรงมา ระบุเฉพาะพอร์ตที่จะรับฟังคำขอของไคลเอ็นต์และกฎที่จะใช้สำหรับการทำโหลดบาลานซ์ จากนั้นเพิ่มเซิร์ฟเวอร์แบ็กเอนด์ที่จะใช้และคุณจะมีพร็อกซีย้อนกลับและทำงานอยู่ โพสต์นี้แชร์ขั้นตอนที่ต้องปฏิบัติตามและสาธิตตัวอย่างเพื่อให้แน่ใจว่าคุณคุ้นเคยกับ HAProxy