ตัวเลือกพร็อกซีของ Tornado ต้องใช้ HTTP backend ที่ถูกต้อง
ตรวจสอบการใช้งานไคลเอนต์ HTTP ที่ใช้งานอยู่ของ Tornado ก่อนกำหนดค่าตัวเลือกคำขอพร็อกซี
Tornado มีอินเทอร์เฟซไคลเอนต์ HTTP แบบอะซิงโครนัสหนึ่งชุด ซึ่งภายใต้มีหลายการใช้งานที่ต่างกัน ดังนั้นตัวเลือกพร็อกซีอาจล้มเหลวเนื่องจากการใช้งานที่เลือกแม้ปลายทางพร็อกซีจะถูกต้อง
เอกสารไคลเอนต์ HTTP ระบุ SimpleAsyncHTTPClient เป็นการใช้งานเริ่มต้นและอธิบายทางเลือกที่ใช้ curl ตัวเลือกคำขอเช่น proxy_host มีหมายเหตุการสนับสนุนเฉพาะการใช้งาน อ่านหมายเหตุเหล่านั้นก่อนเพิ่มตัวเลือกในการเรียก fetch
กำหนดค่าก่อนสร้างไคลเอนต์
ในสภาพแวดล้อมที่มี curl backend อยู่แล้ว แอปพลิเคชันสามารถเลือกได้ก่อนสร้างไคลเอนต์ที่ใช้ร่วมกัน:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
จากนั้นใช้ตัวเลือกคำขอที่เอกสารระบุสำหรับโฮสต์ พอร์ต การรับรองความถูกต้อง และเวลาหมดเวลาของพร็อกซีสำหรับการเรียกที่ต้องการ แยกชื่อโฮสต์ออกจากพอร์ตที่เป็นตัวเลข การเลือก backend ไม่ได้เลือกปลายทางพร็อกซีด้วยตัวเอง สำหรับเส้นทาง HTTP สาธารณะที่ได้รับอนุญาต รายการพร็อกซี HTTP จัดหาตัวเลือกโฮสต์และพอร์ตสำหรับตัวเลือกคำขอเหล่านั้น
การสร้างไคลเอนต์สำคัญเพราะแอปพลิเคชันหรือเฟรมเวิร์กอาจสร้างและเก็บไคลเอนต์ HTTP ไว้ก่อนโค้ดนี้ทำงาน ตรวจสอบอินสแตนซ์จริงที่ใช้ในคำขอที่ล้มเหลว แทนที่จะสร้างไคลเอนต์อื่นภายหลังแล้วถือว่ามันอธิบายตัวแรก
สำหรับการวินิจฉัย ให้บันทึก backend ที่ใช้งานอยู่และเวอร์ชันไลบรารีพื้นฐานพร้อมขั้นตอนที่ล้มเหลว แยกแยะตัวเลือกคำขอที่ไม่รองรับออกจากเวลาหมดเวลาเครือข่ายและจากการตอบกลับ HTTP ที่พร็อกซีส่งกลับ การสังเกตเหล่านี้นำไปสู่การแก้ไขที่ต่างกัน