当前位置: 首页 > 面试题库 >

ES不监听外部请求

柳轶
2023-03-14
问题内容

我有一个运行Elasticsearch的e2 ubuntu实例,尽管它在本地运行良好,但无法使用Windows PC进行连接curl http://ipaddress:9200/(错误是“无法连接到远程服务器”)。

我已经在相同的ubuntu实例上设置了Apache,并curl http://ipaddress:80/在同一台Windows计算机上工作,并且我可以毫无问题地ping该实例。我的Amazon安全组允许tcp从所有IP地址访问所有端口。

我认为这是一个ES配置问题,尽管我添加到elasticsearch.yml的唯一几行是:

http.cors.enabled: true
http.cors.allow-origin: "*"

我在运行netstat时注意到一些奇怪的情况,端口9200和9300(ES端口)的本地地址中有一个1-这会阻止我的外部请求,如果是的话,如何更改此请求?

   ubuntu@ESServer$ netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0    448 (AWS PRIVATE IP):22     (MY IP):63572           ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:9200                :::*                    LISTEN
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN
tcp6       0      0 ::1:9300                :::*                    LISTEN
tcp6       0      0 127.0.0.1:9300          :::*                    LISTEN

问题答案:

看来您的elasticsearch进程已绑定到localhost。尝试像这样运行它:

bin/elasticsearch --network.host _non_loopback_

从2.0开始,elasticsearch绑定到本地主机。因此,您将无法访问它。

这篇博客文章解释了这种变化背后的原因



 类似资料:
  • 上一步中我们已经定义好了Server接口,并进行了多次重构,但是实际上那个Server是没啥毛用的东西。现在要为其添加真正有用的功能。大师说了,饭要一口一口吃,衣服要一件一件脱,那么首先来定个小目标——启动ServerSocket监听请求,不要什么多线程不要什么NIO,先完成最简单的功能。下面还是一步一步来写代码并进行重构优化代码结构。 关于Socket和ServerSocket怎么用,网上很多文

  • Listener架构概述 Listener Listener.DrainType (Enum) Filter FilterChainMatch FilterChain Listener Listener proto { "name": "...", "address": "{...}", "filter_chains": [], "use_original_dst": "{...}

  • 问题内容: 我在componentdidmount中有一个ajax调用。然后在ajax promise中设置setState。 代码是这样的 当我导航到其他路线时,这会导致错误“无法在未安装的组件上设置状态”。 所以我认为我应该做的是在componentwillunmount中删除axios监听器。你会怎么做? 问题答案: 一个非常简单的解决方案是在unmount上设置一个标志,并在promise

  • 说明 要使用 SQL 监听功能,必须先开启,并且不推荐在生产环境使用。 开启方式是在配置文件中的 beans 中加入: 'DbQueryLog' => [ 'enable' => true, ] 事件 SQL 执行 事件名:IMI.DB.EXECUTE 每一个 SQL 语句执行后都会触发该事件。 示例: <?php namespace Imi\Test\Component\Db\Lis

  • 如果开启数据库的调试模式的话,你可以对数据库执行的任何SQL操作进行监听,使用如下方法: Db::listen(function ($sql, $time, $explain) { // 记录SQL echo $sql . ' [' . $time . 's]'; // 查看性能分析结果 dump($explain); }); 默认如果没有注册任何监听操作的话,这些

  • > 在netstat中,端口只监听环回地址 [root@elk~]#netstat-tnlpu | grep 9200 tcp6 0 0 127.0.0.1:9200:::*侦听14968/java tcp6 0 0::1:9200:::*侦听14968/java