Tornados proxyindstillinger kræver det rigtige HTTP-backend
Kontroller Tornados aktive HTTP-klientimplementering, før du konfigurerer proxyanmodningens indstillinger.
Tornado tilbyder én asynkron HTTP-klientgrænseflade med forskellige implementeringer under. Proxyindstillinger kan derfor fejle på grund af den valgte implementering, selv når proxyens endepunkt er korrekt.
HTTP-klientdokumentationen angiver SimpleAsyncHTTPClient som standardimplementeringen og dokumenterer curl-baseret alternativet. Anmodningsindstillinger som proxy_host har implementeringsspecifikke supportnoter. Læs disse noter, før du tilføjer indstillinger til et fetch-kald.
Konfigurer før klienten oprettes
I et miljø, der allerede har curl-backendet, kan en applikation vælge det, før den opretter sin delte klient:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Brug derefter de dokumenterede anmodningsindstillinger for proxyvært, port, godkendelse og timeout til det tilsigtede kald. Hold værtsnavnet adskilt fra den numeriske port. Valget af backend vælger ikke i sig selv et proxyendepunkt. Til en tilladt offentlig HTTP-rute leverer HTTP-proxylisten værts- og portkandidater til disse anmodningsindstillinger.
Oprettelsen af klienten er vigtig, fordi en applikation eller et framework kan oprette og beholde en HTTP-klient, før denne kode kører. Undersøg den faktiske instans, der blev brugt i den fejlende anmodning, i stedet for at oprette en anden klient bagefter og antage, at den forklarer den første.
Til diagnosticering skal du registrere det aktive backend og dets underliggende biblioteksversion sammen med det fejlende trin. Skeln mellem en ikke-understøttet anmodningsindstilling, en netværkstimeout og et HTTP-svar returneret af proxyen. Disse observationer fører til forskellige rettelser.