Tornado-proxyopties vereisen de juiste HTTP-backend
Controleer de actieve HTTP-clientimplementatie van Tornado voordat u opties voor proxyverzoeken configureert.
Tornado biedt één asynchrone HTTP-clientinterface met verschillende implementaties eronder. Proxyopties kunnen daarom mislukken door de gekozen implementatie, zelfs wanneer het proxy-eindpunt correct is.
De documentatie van de HTTP-client noemt SimpleAsyncHTTPClient de standaardimplementatie en documenteert het op curl gebaseerde alternatief. Verzoekopties zoals proxy_host hebben implementatiespecifieke ondersteuningsnotities. Lees die notities voordat u opties aan een fetch-aanroep toevoegt.
Configureer voordat de client wordt gebouwd
In een omgeving die al over de curl-backend beschikt, kan een applicatie die kiezen voordat zij haar gedeelde client aanmaakt:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Gebruik vervolgens de gedocumenteerde verzoekopties voor proxyhost, poort, authenticatie en time-out voor de beoogde aanroep. Houd de hostnaam gescheiden van de numerieke poort. Het kiezen van de backend kiest niet op zichzelf een proxy-eindpunt. Voor een toegestane openbare HTTP-route levert de HTTP-proxylijst host- en poortkandidaten voor die verzoekopties.
Het bouwen van de client is belangrijk omdat een applicatie of framework een HTTP-client kan aanmaken en vasthouden voordat deze code draait. Onderzoek de werkelijke instantie die in het mislukte verzoek is gebruikt, in plaats van later een andere client te bouwen en aan te nemen dat die de eerste verklaart.
Registreer voor diagnose de actieve backend en de versie van de onderliggende bibliotheek samen met de mislukte fase. Onderscheid een niet-ondersteunde verzoekoptie van een netwerktime-out en van een HTTP-antwoord dat de proxy teruggaf. Die observaties leiden tot verschillende oplossingen.