As opções de proxy do Tornado exigem o backend HTTP certo
Verifique a implementação ativa do cliente HTTP do Tornado antes de configurar as opções de requisição do proxy.
O Tornado expõe uma única interface de cliente HTTP assíncrona, sob a qual existem implementações diferentes. Por isso, as opções de proxy podem falhar por causa da implementação escolhida mesmo quando o endpoint do proxy está correto.
A documentação do cliente HTTP identifica SimpleAsyncHTTPClient como a implementação padrão e documenta a alternativa baseada em curl. As opções de requisição como proxy_host têm notas de suporte específicas de cada implementação. Leia essas notas antes de adicionar opções a uma chamada fetch.
Configure antes de construir o cliente
Num ambiente que já tem o backend curl, uma aplicação pode selecioná-lo antes de criar o seu cliente compartilhado:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Depois use as opções de requisição documentadas para host, porta, autenticação e tempo limite do proxy na chamada pretendida. Mantenha o nome do host separado da porta numérica. Escolher o backend não escolhe por si só um endpoint de proxy. Para uma rota HTTP pública permitida, a lista de proxies HTTP fornece candidatos de host e porta para essas opções de requisição.
A construção do cliente importa porque uma aplicação ou framework pode criar e manter um cliente HTTP antes de este código ser executado. Inspecione a instância real usada na requisição que falhou em vez de construir outro cliente depois e presumir que ele explica o primeiro.
Para diagnóstico, registre o backend ativo e a versão da biblioteca subjacente junto com a etapa que falhou. Distinga uma opção de requisição sem suporte de um tempo limite de rede e de uma resposta HTTP devolvida pelo proxy. Essas observações levam a correções diferentes.