Tornado-ի պրոքսի ընտրանքներին անհրաժեշտ է ճիշտ HTTP backend
Նախքան պրոքսի հարցումների ընտրանքները կարգավորելը, ստուգեք Tornado-ի ակտիվ HTTP հաճախորդի իրականացումը:
Tornado-ն առաջարկում է մեկ ասինխրոն HTTP հաճախորդի ինտերֆեյս, որի տակ տարբեր իրականացումներ են: Այդ պատճառով պրոքսի ընտրանքները կարող են ձախողվել ընտրված իրականացման պատճառով, նույնիսկ երբ պրոքսիի վերջնակետը ճիշտ է:
HTTP հաճախորդի փաստաթղթերը SimpleAsyncHTTPClient-ը նշում են որպես լռելյայն իրականացում և փաստագրում են curl-ի վրա հիմնված այլընտրանքը: proxy_host-ի նման հարցումների ընտրանքներն ունեն իրականացմանը հատուկ աջակցության նշումներ: Կարդացեք այդ նշումները նախքան fetch կանչին ընտրանքներ ավելացնելը:
Կարգավորեք հաճախորդը ստեղծելուց առաջ
Այն միջավայրում, որտեղ արդեն առկա է curl backend-ը, հավելվածը կարող է ընտրել այն իր ընդհանուր հաճախորդը ստեղծելուց առաջ:
from tornado.httpclient import AsyncHTTPClient
AsyncHTTPClient.configure('tornado.curl_httpclient.CurlAsyncHTTPClient')
client = AsyncHTTPClient()
Այնուհետև օգտագործեք փաստաթղթավորված պրոքսի հոսթի, պորտի, նույնականացման և ժամկետի հարցումների ընտրանքները նախատեսված կանչի համար: Հոսթի անունը առանձին պահեք թվային պորտից: Backend-ի ընտրությունը ինքնին պրոքսիի վերջնակետ չի ընտրում: Թույլատրված հանրային HTTP երթուղու համար HTTP պրոքսիների ցանկը առաջարկում է հոսթի և պորտի թեկնածուներ այդ հարցումների ընտրանքների համար:
Հաճախորդի ստեղծումը կարևոր է, որովհետև հավելվածը կամ ֆրեյմվորկը կարող է HTTP հաճախորդ ստեղծել և պահել նախքան այս կոդի աշխատելը: Քննեք ձախողված հարցումում օգտագործված փաստացի օրինակը՝ փոխարենը ավելի ուշ այլ հաճախորդ ստեղծելու և ենթադրելու, թե այն բացատրում է առաջինը:
Ախտորոշման համար գրանցեք ակտիվ backend-ը և դրա հիմքում ընկած գրադարանի տարբերակը ձախողված փուլի հետ միասին: Տարբերեք չաջակցվող հարցման ընտրանքը ցանցի ժամկետից և պրոքսիի վերադարձրած HTTP պատասխանից: Այդ դիտարկումները տանում են տարբեր ուղղումների: