Внедрение прокси-ориентированного клиента PSR-18 в Elasticsearch PHP
Передайте настроенный Guzzle существующему ClientBuilder приложения, оставив хосты кластера и аутентификацию на этом builder.
$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 отдельно от ответа авторизации кластера.