Opcje proxy w Tornado wymagają właściwego backendu HTTP
Przed skonfigurowaniem opcji żądania proxy sprawdź aktywną implementację klienta HTTP w Tornado.
Tornado udostępnia jeden asynchroniczny interfejs klienta HTTP, pod którym kryją się różne implementacje. Dlatego opcje proxy mogą zawodzić z powodu wybranej implementacji, nawet gdy punkt końcowy proxy jest poprawny.
Dokumentacja klienta HTTP wskazuje SimpleAsyncHTTPClient jako implementację domyślną i dokumentuje alternatywę opartą na curl. Opcje żądania, takie jak proxy_host, mają uwagi dotyczące obsługi charakterystyczne dla implementacji. Przeczytaj te uwagi, zanim dodasz opcje do wywołania fetch.
Skonfiguruj przed utworzeniem klienta
W środowisku, które ma już backend curl, aplikacja może go wybrać przed utworzeniem wspólnego klienta:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Następnie użyj udokumentowanych opcji żądania dla hosta, portu, uwierzytelniania i limitu czasu proxy w zamierzonym wywołaniu. Trzymaj nazwę hosta oddzielnie od numerycznego portu. Wybór backendu sam nie wybiera punktu końcowego proxy. Dla dozwolonej publicznej trasy HTTP lista proxy HTTP dostarcza kandydatów hosta i portu dla tych opcji żądania.
Utworzenie klienta ma znaczenie, ponieważ aplikacja lub framework może utworzyć i zachować klienta HTTP, zanim ten kod się uruchomi. Zbadaj rzeczywistą instancję używaną w nieudanym żądaniu, zamiast tworzyć później innego klienta i zakładać, że wyjaśnia on pierwszy.
Do diagnostyki zapisz aktywny backend i wersję jego biblioteki bazowej wraz z etapem, na którym wystąpił błąd. Odróżnij nieobsługiwaną opcję żądania od limitu czasu sieci i od odpowiedzi HTTP zwróconej przez proxy. Te obserwacje prowadzą do różnych poprawek.