使用https与elasticsearch-php客户端

时间:2014-01-27 20:44:41

标签: php elasticsearch

我目前正在尝试使用php elasticsearch client

连接到我的弹性搜索群集

我在使用https端点时遇到问题。我的群集位于负载平衡器后面,前面有VIP,它使用的是Apache身份验证,位于443端口。我遇到的问题是客户端的配置似乎正在解析主机并删除{{1}来自主机名。这导致客户端总是尝试通过端口80连接。我尝试添加:443到主机名但我得到卷曲错误“从服务器的空回复”。我知道这个服务器有访问权限(没有防火墙阻止),因为我可以使用https://myelasticsearch.com手动进行卷曲调用。

我的问题是,有没有办法指定使用此客户端请求的协议?如果没有,在源中的哪个位置解析主机阵列?

2 个答案:

答案 0 :(得分:0)

我找到了一个临时解决方案,在src/Elasticsearch/Connections/AbstractConnection.php中有一个已设置为transportSchema的已定义http变量。我将其更改为https并在配置中将:443添加到我的主机中并且它可以正常工作!

答案 1 :(得分:0)

正如对此问题的更新(如果有人偶然发现),此错误已在Elasticsearch-PHP v1.1.0中修复。您现在可以在主机中指定https以使用SSL:

$params = array();
$params['hosts'] = array (
    'https://localhost',        // SSL to localhost
    'https://192.168.1.3:9200'  // SSL to IP + Port
);

$client = new Elasticsearch\Client($params);