ហេតុអ្វី curl មិនអើពើ HTTP_PROXY
យល់ពីករណីលើកលែង HTTP_PROXY ដែល curl ធ្វើដោយចេតនា អថេរតាមពិធីការ 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។ បរិស្ថានដំណើរការរបស់កម្មវិធីផ្ទាល់អាចរកឃើញ និងបញ្ចូលប្រូកស៊ីតាមរបៀបផ្សេង។