繁体   English   中英

elasticsearch php客户端忽略主机端口

[英]elasticsearch php client omit port on host

我正在创建一个需要入站Elasticsearch的项目,我正在使用elasticsearch / elasticsearch包来使用php处理elasticsearch内容。 现在在自述文件中,我得到以下信息:

$hosts = [
     '192.168.1.1:9200',         // IP + Port
     '192.168.1.2',              // Just IP
     'mydomain.server.com:9201', // Domain + Port
     'mydomain2.server.com',     // Just Domain
     'https://localhost',        // SSL to localhost
     'https://192.168.1.3:9200'  // SSL to IP + Port
];
$client = ClientBuilder::create()           
                    ->setHosts($hosts)      // Set the hosts
                    ->build();              // Build the client object

如果我将不带端口的主机的IP地址用作主机,则在任何情况下端口9200都会附加到我请求的URL后面。 我的ES服务器正在侦听端口80,因此无需将端口连接到该端口。

我的连接定义如下:

$params = [
    'hosts' => [
        'XXX.XXX.XXX.XXX'
    ],
    'retries' => 5
];

return ClientBuilder::fromConfig($params);

然后客户端会抛出异常NoNodesAvailableException和爬行的异常跟踪,我看到,连接在“URL”正在取得=>' http://XXX.XXX.XXX.XXX :9200 /

如何摆脱9200,ES节点正在工作如果我这样做:

http://XXX.XXX.XXX.XXX/?我很清楚

{
    "status" : 200,
    "name" : "568402dd7628e13d38000138",
    "cluster_name" : "elasticsearch-568402dd7628e13d38000138",
    "version" : {
        "number" : "1.7.1",
        "build_hash" : "b88f43fc40b0bcd7f173a1f9ee2e97816de80b19",
        "build_timestamp" : "2015-07-29T09:54:16Z",
        "build_snapshot" : false,
        "lucene_version" : "4.10.4"
    },
    "tagline" : "You Know, for Search"

}

因此,如果未指定9200,则永远不会将其卸下。 如果我输入XXX.XXX.XXX.XXX:80,那么它将无法正常运行。

似乎定义了完整的合格URL https://example.com:443可行。 谢谢大家的回答

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM