$http = new \GuzzleHttp\Client([
    'proxy' => 'http://proxy.example:8080',
]);

$builder->setHttpClient($http);
$elasticsearch = $builder->build();

$builder — это существующий Elastic\Elasticsearch\ClientBuilder с нужными хостами кластера и аутентификацией. Эти хосты остаются назначениями; внедрённый HTTP-клиент выбирает их посредника, используя HTTP-кандидата из списка HTTP-прокси, когда публичный маршрут к кластеру разрешён.

С документированным транспортом Guzzle по умолчанию setHttpClientOptions также принимает параметр прокси. Другая предоставленная реализация PSR-18 требует собственной конфигурации; имена параметров Guzzle не являются интерфейсом, который разделяют все реализации.

setConnectionParams с вложенными параметрами cURL относится к более старому поколению транспорта. Используйте входные данные, которые предоставляет фактически созданный класс.

Повторно используйте настроенный клиент для его нагрузки. Держите учётные данные прокси у посредника, а ключ API — в Elasticsearch, и храните 407 отдельно от ответа авторизации кластера.

Похожие статьи