რატომ უგულებელყოფს 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-ს მიუყენეთ; აპლიკაციის საკუთარ შესრულების გარემოს პროქსების სხვაგვარად აღმოჩენა და გაერთიანება შეუძლია.