Зашто curl занемарује HTTP_PROXY
Намерни изузетак curl-а за HTTP_PROXY, променљиве по протоколу, ALL_PROXY и предвидљиво тестирање проксија путем окружења.
За HTTP одредишта поставите http_proxy малим словима. curl намерно занемарује HTTP_PROXY великим словима. У POSIX љусци:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Ове доделе важе само за наредбу која следи одмах иза њих. Замените пример адресе ослушкивања својим проксијем; за поређење јавних крајњих тачака изаберите кандидата са списка HTTP проксија. Променљива https_proxy бира путању за HTTPS одредишта; вредност са http:// и даље означава обични HTTP прокси који може да направи тунел до одредишта. PowerShell и Windows командне љуске користе другачију синтаксу доделе.
Зашто је управо овај запис великим словима опасан
CGI окружења могу да претворе заглавља долазних захтева у променљиве HTTP_ великим словима. Заглавље названо Proxy зато може да постане HTTP_PROXY. Поверење у њега као подешавање излазних веза омогућило би подацима захтева да бирају прокси. Захтев curl-а за малим словима избегава то пресликавање; изузетак се не примењује исто на HTTPS и променљиве других протокола.
Ако промена променљиве не промени путању
Прво потражите променљиву за одређени протокол, а затим резервну ALL_PROXY. Одговарајуће правило NO_PROXY може да заобиђе прокси. Важне су и варијанте малим словима и конкурентне дефиниције. Ова петља за Unix-сличну љуску пријављује присуство без исписа вредности које могу да садрже податке за пријављивање:
for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
if printenv "$name" >/dev/null; then
printf '%s is set\n' "$name"
fi
doneЛокално прегледајте наведене дефиниције. Ако се нека поново појави, проверите конфигурацију покретачке љуске, сервиса, IDE-а, контејнера или CI-ја. Присуство указује на могуће улазе; не говори која је вредност добила предност.
Да бисте један захтев издвојили од тих избора проксија, наведите и крајњу тачку и празан списак заобилажења:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/За дозвољено поређење са директном везом:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Ове наредбе помажу да разликујете наслеђену путању од грешке повезивања. Прочитајте резултате теста проксија по фазама пре мењања додатних подешавања окружења. Правила променљивих curl-а примењујте на curl; сопствено извршно окружење апликације може другачије да открива и обједињује проксије.