Toxiproxy ส่งต่อ TCP stream ไปยัง upstream ที่กำหนดค่าไว้ และสามารถรบกวน stream นั้นได้ แต่ HTTP control API ของมันไม่ได้ทำให้ตัวรับฟังทราฟฟิกกลายเป็น HTTP forward proxy

สำหรับ SDK ที่กำหนดค่าให้ใช้ HTTP proxy นั้น forward proxy ที่มีอยู่สามารถอยู่ข้างหลังได้:

SDK → Toxiproxy 127.0.0.1:7890 → HTTP proxy 127.0.0.1:8888 → S3:443

ตั้งค่าตัวรับฟัง Toxiproxy บน 7890 โดยให้ 127.0.0.1:8888 เป็น upstream จากนั้นชี้การตั้งค่า HTTP proxy ของ SDK ไปที่ http://127.0.0.1:7890 ตัวรับฟังจะส่งต่อคำขอ CONNECT ของ SDK และ HTTP proxy จะตีความ CONNECT และเปิดอุโมงค์ไปยังปลายทาง

ที่อยู่ loopback เหล่านี้ถือว่าองค์ประกอบภายในเครื่องทั้งสามใช้ network namespace เดียวกัน องค์ประกอบในคอนเทนเนอร์ต้องใช้ที่อยู่ที่เข้าถึงได้จาก namespace ของตัวเอง

การจัดวางนี้เปลี่ยนเส้นทางจากไคลเอนต์ไปยัง forward proxy ไม่ได้แทนที่ TLS ของปลายทางหรือการยืนยันตัวตนของบริการ เมื่อประเมินความผิดพลาดที่ถูกฉีดเข้าไป ให้คำนวณการลองใหม่ของ SDK แยกต่างหาก เพราะการดำเนินการที่กู้คืนได้อาจซ่อนความพยายามที่ล้มเหลวก่อนหน้า

บทความที่เกี่ยวข้อง