2

我有一个带有 Compose.io 的 Elasticsearch 集群,但我无法连接到 Elastica Client。这是我的配置:

    $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 内部服务器错误

如何正确连接数据库?

4

2 回答 2

5

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');
于 2015-05-29T19:15:39.190 回答
3

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

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

如果服务器按预期“工作”,您将获得带有 elasticserach 服务器状态的 JSON 结果。在这种情况下,问题与 Elastica 相关。在所有其他情况下,我认为问题与防火墙设置、证书问题或其他服务器问题有关,并且与 Elastica 无关。

另请注意,不推荐在 Elastica 中使用“服务器”阵列。应该使用具有相同参数的服务器“连接”而不是服务器。

于 2015-05-29T13:29:42.990 回答