Opsi proxy Tornado memerlukan backend HTTP yang tepat
Periksa implementasi klien HTTP Tornado yang aktif sebelum mengonfigurasi opsi permintaan proxy.
Tornado menyediakan satu antarmuka klien HTTP asinkron dengan berbagai implementasi di bawahnya. Karena itu, opsi proxy dapat gagal akibat implementasi yang dipilih bahkan ketika endpoint proxy sudah benar.
Dokumentasi klien HTTP menetapkan SimpleAsyncHTTPClient sebagai implementasi bawaan dan mendokumentasikan alternatif berbasis curl. Opsi permintaan seperti proxy_host memiliki catatan dukungan khusus implementasi. Baca catatan tersebut sebelum menambahkan opsi ke pemanggilan fetch.
Konfigurasikan sebelum membuat klien
Di lingkungan yang sudah memiliki backend curl, aplikasi dapat memilihnya sebelum membuat klien bersamanya:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Lalu gunakan opsi permintaan terdokumentasi untuk host, port, autentikasi, dan batas waktu proxy pada pemanggilan yang dimaksud. Pisahkan nama host dari port numerik. Memilih backend tidak dengan sendirinya memilih endpoint proxy. Untuk rute HTTP publik yang diizinkan, daftar proxy HTTP menyediakan kandidat host dan port untuk opsi permintaan tersebut.
Pembuatan klien penting karena aplikasi atau framework dapat membuat dan menyimpan klien HTTP sebelum kode ini berjalan. Periksa instans sebenarnya yang dipakai pada permintaan yang gagal, bukan membuat klien lain setelahnya lalu menganggapnya menjelaskan yang pertama.
Untuk diagnosis, catat backend aktif dan versi pustaka dasarnya bersama tahap yang gagal. Bedakan opsi permintaan yang tidak didukung dari batas waktu jaringan dan dari respons HTTP yang dikembalikan proxy. Pengamatan itu mengarah ke perbaikan yang berbeda.