Зошто 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; сопствената извршна околина на апликацијата може поинаку да открива и обединува прокси.