【问题标题】:Invalid Host Header when using elasticsearch client使用 elasticsearch 客户端时主机标头无效
【发布时间】:2019-11-22 00:56:36
【问题描述】:

使用 elasticsearch 客户端(来自 elasticsearch npm 版本 15.4.1)时,AWS elasticsearch 服务会抱怨主机标头无效。每个请求都会发生这种情况,即使它们有效。

我仔细检查了初始化elasticsearch客户端的配置,参数“host”的格式正确。

let test = require('elasticsearch').Client({
    host: 'search-xxx.us-west-1.es.amazonaws.com',
    connectionClass: require('http-aws-es')
});

我希望得到一个没有相应 InvalidHostHeaderRequests 的干净 ElasticsearchRequest(我可以在 Amazon Elasticsearch Service 的集群运行状况仪表板上看到这些日志)。

【问题讨论】:

  • 也许是:hosts: ['search-xxx.us-west-1.es.amazonaws.com']
  • @IjazAhmadKhan,我已经尝试过,但它不起作用。仍在尝试其他解决方案...

标签: node.js amazon-web-services elasticsearch aws-lambda


【解决方案1】:

发现问题。 在使用 elasticsearch 库连接 AWS ES 集群时,前面的语法可能会导致问题,因此初始化客户端的最佳方法是指定整个 'host' 对象,如下所示:

host: {
    protocol: 'https',
    host: 'search-xxx.us-west-1.es.amazonaws.com',
    port: '443',
    path: '/'

这里的问题是,AWS ES 集群可能需要主机对象内的主机字段,这会导致“无效主机标头”问题。希望这将有助于社区编写更好的代码。 参考https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/16.x/host-reference.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 2018-12-18
    • 1970-01-01
    • 2020-07-11
    • 2020-10-17
    相关资源
    最近更新 更多