Параметри проксі в 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-відповіді, повернутої проксі. Ці спостереження ведуть до різних виправлень.