SOCKS 프록시를 위한 Guzzle cURL 핸들러 선택
HTTP 스트림만 지원하는 핸들러는 프록시 URL에서 SOCKS 협상을 얻을 수 없습니다. 실제 PHP 런타임에서 지원되는 전송을 선택하세요.
Guzzle 클라이언트의 핸들러를 의도적으로 고를 때 cURL 기반 스택은 SOCKS를 사용할 수 있습니다:
$stack = \GuzzleHttp\HandlerStack::create(
new \GuzzleHttp\Handler\CurlHandler()
);
$client = new \GuzzleHttp\Client([
'handler' => $stack,
'proxy' => 'socks5h://proxy.example.net:1080',
]);socks5h 은(는) 프록시에 대상 이름 확인을 요청합니다. Guzzle은 엔드포인트를 libcurl에 넘기므로 로드된 libcurl 빌드가 그 프로토콜을 지원해야 합니다. SOCKS5 프록시 목록은 클라이언트 프록시 URL에 쓸 공개 엔드포인트 후보를 제공합니다.
애플리케이션에 이미 핸들러 스택이 있다면 교체하여 미들웨어를 잃기 전에 그 아래의 전송을 확인하세요. PHP HTTP 스트림으로 제한된 핸들러는 클라이언트가 이 옵션을 받는다는 이유만으로 SOCKS를 구현할 수 없습니다.
요청을 수행하는 프로세스를 확인하세요. CLI PHP와 PHP-FPM은 서로 다른 설정 파일과 확장을 로드할 수 있으며, 한쪽에 cURL이 있다고 다른 쪽에서 사용 가능한 것은 아닙니다.