Een proxybewuste PSR-18-client injecteren in Elasticsearch PHP
Geef een geconfigureerde Guzzle door aan de bestaande ClientBuilder van de applicatie, en laat clusterhosts en authenticatie op die builder.
$http = new \GuzzleHttp\Client([
'proxy' => 'http://proxy.example:8080',
]);
$builder->setHttpClient($http);
$elasticsearch = $builder->build();$builder is de bestaande Elastic\Elasticsearch\ClientBuilder met de bedoelde clusterhosts en authenticatie. Die hosts blijven de bestemmingen; de geïnjecteerde HTTP-client kiest hun tussenpersoon, met een HTTP-kandidaat uit de HTTP-proxylijst wanneer een openbare route naar het cluster is toegestaan.
Met het gedocumenteerde standaard Guzzle-transport accepteert setHttpClientOptions ook een proxyoptie. Een andere geleverde PSR-18-implementatie heeft zijn eigen configuratie nodig; Guzzle-optienamen zijn geen interface die elke implementatie deelt.
setConnectionParams met geneste cURL-opties hoort bij een oudere transportgeneratie. Gebruik de invoer die de daadwerkelijk geconstrueerde klasse biedt.
Hergebruik de geconfigureerde client voor zijn werklast. Houd proxyreferenties bij de tussenpersoon en de API-sleutel bij Elasticsearch, en bewaar een 407 apart van een autorisatierespons van het cluster.