گزینههای پروکسی Tornado به بکاند درست HTTP نیاز دارند
پیش از پیکربندی گزینههای درخواست پروکسی، پیادهسازی فعال کلاینت HTTP در Tornado را بررسی کنید.
Tornado یک رابط کلاینت HTTP ناهمگام ارائه میدهد که پیادهسازیهای مختلفی زیر آن قرار دارد. بنابراین گزینههای پروکسی ممکن است به دلیل پیادهسازی انتخابشده شکست بخورند، حتی وقتی نقطه پایانی پروکسی درست است.
مستندات کلاینت HTTP ، SimpleAsyncHTTPClient را پیادهسازی پیشفرض معرفی میکند و جایگزین مبتنی بر curl را مستند میسازد. گزینههای درخواست مانند proxy_host یادداشتهای پشتیبانی مخصوص هر پیادهسازی دارند. پیش از افزودن گزینهها به فراخوانی fetch آن یادداشتها را بخوانید.
پیش از ساختن کلاینت پیکربندی کنید
در محیطی که از قبل بکاند curl دارد، یک برنامه میتواند آن را پیش از ساختن کلاینت مشترک خود انتخاب کند:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
سپس از گزینههای درخواست مستندشده برای میزبان، درگاه، احراز هویت و مهلت پروکسی برای فراخوانی مورد نظر استفاده کنید. نام میزبان را از درگاه عددی جدا نگه دارید. انتخاب بکاند بهخودیخود نقطه پایانی پروکسی را انتخاب نمیکند. برای یک مسیر عمومی مجاز HTTP، فهرست پروکسی HTTP نامزدهای میزبان و درگاه را برای آن گزینههای درخواست فراهم میکند.
ساختن کلاینت اهمیت دارد زیرا یک برنامه یا چارچوب میتواند پیش از اجرای این کد یک کلاینت HTTP بسازد و نگه دارد. نمونه واقعی بهکاررفته در درخواست ناموفق را بررسی کنید، نه اینکه بعداً کلاینت دیگری بسازید و فرض کنید آن کلاینت اولی را توضیح میدهد.
برای عیبیابی، بکاند فعال و نسخه کتابخانه زیربنایی آن را همراه با مرحله ناموفق ثبت کنید. گزینه درخواست پشتیبانینشده را از مهلت شبکه و از پاسخ HTTP بازگرداندهشده توسط پروکسی جدا کنید. این مشاهدات به اصلاحهای متفاوتی میرسند.