Опциям прокси в 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-ответа, возвращённого прокси. Эти наблюдения ведут к разным исправлениям.