我目前正在尝试使用php elasticsearch client
连接到我的弹性搜索群集我在使用https
端点时遇到问题。我的群集位于负载平衡器后面,前面有VIP,它使用的是Apache身份验证,位于443端口。我遇到的问题是客户端的配置似乎正在解析主机并删除{{1}来自主机名。这导致客户端总是尝试通过端口80连接。我尝试添加:443到主机名但我得到卷曲错误“从服务器的空回复”。我知道这个服务器有访问权限(没有防火墙阻止),因为我可以使用https://myelasticsearch.com手动进行卷曲调用。
我的问题是,有没有办法指定使用此客户端请求的协议?如果没有,在源中的哪个位置解析主机阵列?
答案 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);