Mga timeout ng proxy sa curl: hanapin ang nabigong hakbang
Ihiwalay ang koneksyon sa proxy, negosasyon ng tunnel, TLS at natigil na tugon upang makatulong ang mga limitasyon ng curl sa pagtukoy ng problema.
Hanapin ang huling natapos na operasyon sa detalyadong output ng curl. Mas nililimitahan ng “Nakakonekta sa proxy, pero walang tugon sa CONNECT” ang problema kaysa sa “nag-timeout ang proxy”.
Gumamit ng kahilingang may takdang oras at palitan ang lokal na halimbawa ng iyong HTTP proxy; maaaring humanap ng ibang endpoint sa listahan ng mga HTTP proxy para ihambing:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Nagbibigay ang --connect-timeout 5 ng iisang badyet sa oras para sa pagbuo ng koneksyon, kasama ang kaugnay na lookup at handshake; hindi nito binibigyan ng tig-lilimang segundo ang bawat yugto. Nililimitahan ng --max-time 15 ang buong operasyon, kasama ang paglilipat matapos mabuo ang koneksyon.
| Saan humihinto ang pag-usad | Ano ang susunod na siyasatin |
|---|---|
| Walang koneksyon sa proxy | Pagresolba sa hostname ng proxy, port na nakikinig, routing at patakaran ng firewall. |
| Nakakonekta ang proxy; walang tugon sa tunnel | Karga ng proxy, negosasyon sa pagpapatunay, patakaran sa pag-access at kung naaabot ang destinasyon mula sa proxy. |
| Tinanggap ang tunnel; hindi tapos ang TLS | Pag-abot sa destinasyon, negosasyon ng TLS at pinamamahalaang pagharang sa trapiko. |
| Dumarating ang mga header ng destinasyon; natitigil ang katawan | Paraan ng paglilipat ng origin server, buffering ng mga tagapamagitan at kung sadyang tahimik ang application. |
Para sa pagkakasunod ng mga handshake, tingnan kung paano dinadala ng CONNECT ang HTTPS. Ang paghinto malapit sa badyet ng koneksyon ay nagpapahiwatig ng setup; ang mas huling paghinto sa kabuuang limitasyon ay nagpapahiwatig ng hindi tapos na paglilipat. Gamitin ang pagkakasunod kasama ng oras; hindi matutukoy ng oras lamang ang bahagi. Nag-iiba ang teksto ng log sa mga build ng curl, at hindi patunay ng gumaganang CONNECT ang bukas na TCP port.
Panatilihing pareho ang isang panig
Ihambing ang parehong destinasyon sa pinapayagang direktang ruta:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Pagkatapos ay ihambing ang isa pang hindi mapaminsalang destinasyon sa parehong proxy. Kung isa lang ang nabibigo, siyasatin ang ruta o patakaran ng destinasyong iyon. Kung lahat ay humihinto sa parehong setup step, siyasatin ang iisang dinaraanan sa proxy. Itala ang oras ng pagsisimula, endpoint, destinasyon at huling natapos na yugto; alisin ang mga kredensyal, token, cookie at pribadong pangalan bago ibahagi ang mga log.
Kapag bukas ang koneksyon ngunit walang kapaki-pakinabang na pag-usad
Maaaring kailanganin ng paglilipat ng file ang limitasyon sa mababang bilis bukod sa setup at kabuuang oras:
curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 60 --speed-limit 100 --speed-time 20 https://example.com/Ihihinto nito ang operasyon kung nananatiling mas mababa sa 100 byte bawat segundo ang tuloy-tuloy na bilis sa loob ng 20 segundo, habang may kabuuang hangganang 60 segundo. Pumili ng mga halaga ayon sa gawain. Maaaring maayos ang event stream kahit matagal na tahimik, kaya maaaring mali itong ihinto ng patakaran sa pag-download.
Ipinagpapaliban lang ng pagtaas sa lahat ng limitasyon ang sintomas. Maaaring magdagdag ng koneksyon sa overloaded na daanan ang agarang paulit-ulit na pagsubok. Magsuri sa ilang planadong paghahambing; ang anumang susunod na retry policy ng application ay nangangailangan ng sariling kabuuang badyet at pagsasaalang-alang kung ligtas ulitin ang operasyon.