$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 的选项名称并不是所有实现共享的接口。

带嵌套 cURL 选项的 setConnectionParams 属于较旧的传输世代。请使用实际构建的类所暴露的输入。

为其工作负载复用已配置的客户端。把代理凭据留在中介处、API 密钥留在 Elasticsearch 处,并将 407 与集群的授权响应分开保存。

相关文章