我目前正在尝试使用php elasticsearch client连接到我的弹性搜索集群
为此,我在使用https端点时遇到了问题。我的集群在负载均衡器后面,前面有一个VIP,它使用Apache身份验证,位于端口443上。我遇到的麻烦是,客户端的配置似乎正在解析主机,并从主机名中删除了https://。这会导致客户端始终尝试通过端口80进行连接。我尝试将:443添加到主机名中,但随后收到curl错误"empty reply from server“。我知道此服务器具有访问权限(无防火墙阻止),因为我可以使用https://myelasticsearch.com手动进行curl调用。
我的问题是,有没有一种方法可以指定使用此客户端发出请求的协议?如果不是,主机阵列的解析在源中的什么位置发生?
发布于 2014-01-28 05:28:49
我找到了一个临时解决方案,在src/Elasticsearch/Connections/AbstractConnection.php中有一个已定义的transportSchema变量,该变量被设置为http。我将其更改为https,并在配置中将:443添加到我的主机中,它可以正常工作!
发布于 2014-08-26 06:06:29
就像对这个问题的更新一样(以防有人遇到这个问题),这个bug在Elasticsearch-PHPV1.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);https://stackoverflow.com/questions/21391290
复制相似问题