Tornado는 하나의 비동기 HTTP 클라이언트 인터페이스를 제공하지만 그 아래에는 서로 다른 구현이 있습니다. 따라서 프록시 엔드포인트가 올바르더라도 선택된 구현 때문에 프록시 옵션이 실패할 수 있습니다.

HTTP 클라이언트 문서는 SimpleAsyncHTTPClient을 기본 구현으로 지정하고 curl 기반 대안을 문서화합니다. proxy_host 같은 요청 옵션에는 구현별 지원 설명이 있습니다. fetch 호출에 옵션을 추가하기 전에 그 설명을 읽으십시오.

클라이언트를 생성하기 전에 구성하십시오

이미 curl 백엔드가 있는 환경에서는 애플리케이션이 공유 클라이언트를 만들기 전에 이를 선택할 수 있습니다:

from tornado.httpclient import AsyncHTTPClient

AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()

그런 다음 의도한 호출에 대해 문서화된 프록시 호스트, 포트, 인증, 타임아웃 요청 옵션을 사용하십시오. 호스트 이름은 숫자 포트와 분리해 두십시오. 백엔드를 선택한다고 해서 그 자체로 프록시 엔드포인트가 선택되지는 않습니다. 허용된 공개 HTTP 경로의 경우 HTTP 프록시 목록이 해당 요청 옵션에 쓸 호스트와 포트 후보를 제공합니다.

클라이언트 생성이 중요한 이유는 애플리케이션이나 프레임워크가 이 코드가 실행되기 전에 HTTP 클라이언트를 만들어 유지할 수 있기 때문입니다. 실패한 요청에 실제로 사용된 인스턴스를 확인하고, 나중에 다른 클라이언트를 만들어 그것이 첫 번째 것을 설명한다고 가정하지 마십시오.

진단을 위해 활성 백엔드와 그 기반 라이브러리 버전을 실패 단계와 함께 기록하십시오. 지원되지 않는 요청 옵션, 네트워크 타임아웃, 프록시가 반환한 HTTP 응답을 구분하십시오. 이러한 관찰은 서로 다른 수정으로 이어집니다.

관련 글