带群集的elastica客户端

qvsjd97n  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(2)|浏览(514)

我有一个带有compose.io的elasticsearch群集,但我无法连接elastica客户端。这是我的配置:

$elasticaClient = new \Elastica\Client(array(
        'servers' => array(
            array('host' => 'https://myusername:mypass@aws-us-east-1-portal2.dblayer.com', 'port' => 10050),
            array('host' => 'https://myusername:mypass@aws-us-east-1-portal3.dblayer.com', 'port' => 10062)
        )
    ));
    $elasticaIndex = $elasticaClient->getIndex('test');

我有个错误:
无法解析主机500内部服务器错误
如何正确连接到数据库?

4ioopgfo

4ioopgfo1#

要测试您的问题是否与elastica相关,或者对服务的访问是否存在问题(我假设是这样),请使用curl:

curl https://myusername:mypass@aws-us-east-1-portal2.dblayer.com:10050

如果服务器按预期“工作”,您将得到一个带有elasticserach服务器状态的json结果。在这种情况下,问题与弹性有关。在所有其他情况下,我假设问题与防火墙设置、证书问题或其他服务器问题有关,并且不是特定于elastica的。
请注意,在elastica中使用“servers”数组是不推荐的。而不是使用具有相同参数的服务器“连接”。

6vl6ewon

6vl6ewon2#

参数 host 必须在没有协议的情况下指定。
如果你想使用https,你应该设置 transport 参数到 Https (代替 Http 默认情况下使用)。

$elasticaClient = new \Elastica\Client([
    'connections' => [
        ['transport' => 'Https', 'host' => 'myusername:mypass@aws-us-east-1-portal2.dblayer.com', 'port' => 10050],
        ['transport' => 'Https', 'host' => 'myusername:mypass@aws-us-east-1-portal3.dblayer.com', 'port' => 10062],
    ],
]);
$elasticaIndex = $elasticaClient->getIndex('test');

相关问题