Možnosti proxy v Tornade vyžadujú správny HTTP backend
Pred nastavením možností požiadavky cez proxy skontrolujte aktívnu implementáciu HTTP klienta v Tornade.
Tornado ponúka jedno asynchrónne rozhranie HTTP klienta, pod ktorým stoja rôzne implementácie. Možnosti proxy preto môžu zlyhať pre zvolenú implementáciu, aj keď je koncový bod proxy správny.
V dokumentácii HTTP klienta je SimpleAsyncHTTPClient označený ako predvolená implementácia a je tu opísaná aj alternatíva založená na curl. Možnosti požiadavky ako proxy_host majú poznámky k podpore špecifické pre implementáciu. Prečítajte si tieto poznámky skôr, než do volania fetch pridáte možnosti.
Nastavte pred vytvorením klienta
V prostredí, ktoré už má backend curl, ho aplikácia môže zvoliť pred vytvorením svojho zdieľaného klienta:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Potom použite dokumentované možnosti požiadavky pre host, port, overenie a časový limit proxy v zamýšľanom volaní. Udržujte názov hostu oddelený od číselného portu. Voľba backendu sama o sebe nevyberá koncový bod proxy. Pre povolenú verejnú HTTP trasu zoznam HTTP proxy poskytuje kandidátov hostu a portu pre tie možnosti požiadavky.
Vytvorenie klienta je dôležité, pretože aplikácia alebo rámec môže vytvoriť a podržať HTTP klienta pred spustením tohto kódu. Preskúmajte skutočnú inštanciu použitú v neúspešnej požiadavke, namiesto toho aby ste neskôr vytvorili iného klienta a predpokladali, že vysvetľuje toho prvého.
Pre diagnostiku zaznamenajte aktívny backend a verziu jeho podkladovej knižnice spolu s fázou, v ktorej došlo k zlyhaniu. Odlíšte nepodporovanú možnosť požiadavky od sieťového časového limitu a od odpovede HTTP vrátenej proxy. Tieto pozorovania vedú k rôznym opravám.