אפשרויות הפרוקסי של Tornado זקוקות ל-HTTP backend הנכון
בדקו את מימוש לקוח ה-HTTP הפעיל של Tornado לפני הגדרת אפשרויות בקשת הפרוקסי.
Tornado חושף ממשק אחד של לקוח HTTP אסינכרוני, שמתחתיו נמצאים מימושים שונים. לכן אפשרויות פרוקסי עלולות להיכשל בגלל המימוש שנבחר גם כאשר נקודת הקצה של הפרוקסי נכונה.
תיעוד לקוח ה-HTTP מגדיר את SimpleAsyncHTTPClient כמימוש ברירת המחדל ומתעד את החלופה המבוססת על curl. לאפשרויות בקשה כגון proxy_host יש הערות תמיכה ייחודיות למימוש. קראו את ההערות הללו לפני הוספת אפשרויות לקריאת fetch.
הגדירו לפני יצירת הלקוח
בסביבה שכבר מצוידת ב-backend של curl, אפליקציה יכולה לבחור בו לפני יצירת הלקוח המשותף שלה:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
לאחר מכן השתמשו באפשרויות הבקשה המתועדות עבור מארח, פורט, אימות וזמן קצוב של הפרוקסי בקריאה המיועדת. הפרידו את שם המארח מהפורט המספרי. בחירת ה-backend אינה בוחרת כשלעצמה נקודת קצה של פרוקסי. עבור נתיב HTTP ציבורי מורשה, רשימת פרוקסי HTTP מספקת מועמדים למארח ולפורט עבור אותן אפשרויות בקשה.
יצירת הלקוח חשובה משום שאפליקציה או מסגרת יכולות ליצור לקוח HTTP ולשמור אותו לפני שהקוד הזה רץ. בחנו את המופע בפועל ששימש בבקשה שנכשלה, במקום ליצור לקוח אחר לאחר מכן ולהניח שהוא מסביר את הראשון.
לצורך אבחון, תעדו את ה-backend הפעיל ואת גרסת הספרייה הבסיסית שלו יחד עם השלב שנכשל. הבדילו בין אפשרות בקשה לא נתמכת לבין פסק זמן ברשת ולבין תגובת HTTP שהפרוקסי החזיר. התצפיות הללו מובילות לתיקונים שונים.