cURL പ്രോക്സി പോർട്ടും ലക്ഷ്യ പോർട്ടും
HTTPS സേവനത്തിന്റെ പോർട്ട് അതിന്റെ ലക്ഷ്യ URL-ൽ, ഇടനിലക്കാരന്റെ പോർട്ട് പ്രോക്സി URL-ൽ സൂക്ഷിക്കുക; CURLOPT_PORT ഉപയോഗിച്ച് അവ മാറ്റരുത്.
പോർട്ട് 8443-ലെ HTTPS സേവനം പോർട്ട് 8080-ലെ HTTP പ്രോക്സി വഴി ലഭ്യമാണ്. ഈ സംഖ്യകൾ വ്യത്യസ്ത കണക്ഷനുകളെ വിവരിക്കുന്നു:
$handle = curl_init('https://api.example:8443/status');
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
എക്സിക്യൂഷൻ, പിശക് കൈകാര്യം, ഹാൻഡിന്റെ ജീവിതചക്രം എന്നിവ ഇപ്പോഴും ആപ്ലിക്കേഷന്റെ ഉത്തരവാദിത്തമാണ്. കോഡ് ശകലം സർട്ടിഫിക്കറ്റ് പരിശോധന മാറ്റാതെ റൂട്ടിംഗ് ഇൻപുട്ടുകൾ ഒരുമിച്ച് നിർത്തുന്നു.
cURL ആദ്യം proxy.example:8080-ലേക്ക് ബന്ധിപ്പിക്കുന്നു. ഈ HTTPS ലക്ഷ്യത്തിനായി ടണൽ അഭ്യർത്ഥന api.example:8443 നാമനിർദ്ദേശം ചെയ്യുന്നു, TLS ഐഡന്റിറ്റി api.example തന്നെ തുടരുന്നു.
CURLOPT_PORT ലക്ഷ്യ പോർട്ടിന്റെ ഓവർറൈഡ് ആണ്, പ്രോക്സിയുടെ പോർട്ടല്ല. URL https-ൽ തുടങ്ങുമ്പോഴെല്ലാം അത് 443 ആക്കുന്നത് 8443-ൽ ബോധപൂർവം ഹോസ്റ്റ് ചെയ്ത സേവനത്തെ ഓവർറൈഡ് ചെയ്തേക്കാം. ആ ഓപ്ഷൻ ഉപയോഗിക്കുന്നതിനുപകരം URL-ൽ പോർട്ട് തിരഞ്ഞെടുക്കാൻ libcurl ശുപാർശ ചെയ്യുന്നു.
ഹാൻഡ് വീണ്ടും ഉപയോഗിക്കുമ്പോൾ മുൻപത്തെ വ്യക്തമായ പോർട്ട് ഓവർറൈഡും കണക്കിലെടുക്കുക. പുതിയ URL വിരുദ്ധമായി നിലനിൽക്കുന്ന ഓപ്ഷനുകൾ വ്യാഖ്യാനിക്കാൻ എളുപ്പമാക്കുന്നില്ല.
ഇടനിലക്കാരൻ തിരഞ്ഞെടുത്ത ലക്ഷ്യ പോർട്ടിലേക്കുള്ള CONNECT അനുവദിക്കണം. 8443-നുള്ള നിരസനം പ്രോക്സി ലിസ്നർ മാറ്റാനോ TLS പരിശോധന ഓഫ് ചെയ്യാനോ ഉള്ള കാരണമല്ല.