无法打开与本地主机的 TCP 连接:9200 (连接被拒绝 - "localhost"端口 9200 的连接(2) ) (法拉第::连接失败)



我遇到了错误:puma捕获了此错误:无法打开TCP连接到localhost:9200(连接拒绝 - connect -connect(2)" localhost"端口9200)(faraday :::::::ConnectionFailed)在我的Rails应用程序中,Ubuntu 14.04。

以下是我在终端中弹性搜索的输出:

prashanth@prashanth-OptiPlex-390:~$ sudo service elasticsearch restart
 * Starting Elasticsearch Server                                                                                                               prashanth@prashanth-OptiPlex-390:~$ sudo service elasticsearch start
 * Starting Elasticsearch Server                                                                                                                * Already running.                                                                                                                     [ OK ] 
prashanth@prashanth-OptiPlex-390:~$ curl -X GET 'http://localhost:9200'
curl: (7) Failed to connect to localhost port 9200: Connection refused
prashanth@prashanth-OptiPlex-390:~$ 

这是/etc/elasticsearch/elasticsearch.yml文件中的我的弹性搜索设置

network.host: 127.0.0.1
transport.tcp.port: 9200
http.port: 9200

错误描述:

Puma caught this error: Failed to open TCP connection to localhost:9200 (Connection refused - connect(2) for "localhost" port 9200) (Faraday::ConnectionFailed)
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:882:in `rescue in block in connect'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:879:in `block in connect'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/timeout.rb:91:in `block in timeout'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:878:in `connect'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:852:in `start'
/home/prashanth/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/net/http.rb:1398:in `request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:83:in `perform_request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:41:in `block in call'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:88:in `with_net_http_connection'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/adapter/net_http.rb:33:in `call'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/rack_builder.rb:139:in `build_response'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/faraday-0.10.1/lib/faraday/connection.rb:377:in `run_request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/http/faraday.rb:23:in `block in perform_request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/base.rb:257:in `perform_request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/transport/http/faraday.rb:20:in `perform_request'
/home/prashanth/.rvm/gems/ruby-2.3.1/gems/elasticsearch-transport-5.0.0/lib/elasticsearch/transport/client.rb:128:in `perform_request'

在您发布的设置中,您的HTTP和TCP端口具有相同的端口号分配

network.host: 127.0.0.1
transport.tcp.port: 9200
http.port: 9200

我建议更改transport.tcp.port并再次尝试。

尝试使用默认值,除非您已经使用了端口9300:

network.host: 127.0.0.1
transport.tcp.port: 9300
http.port: 9200

如果您仍面临问题,则可能需要打开防火墙程序上的端口。在Ubuntu上,这可能是UFW。

如果您的服务脚本具有状态函数,则可以告诉您您的Elasticsearch实例是否正确启动。如果失败,您可以使用ps aux来确定它是否正在运行。

$ sudo service elasticsearch status

$ ps aux | grep elasticsearch

正如类似问题中指出的那样,curl可以在不运行Elasticsearch时拒绝连接错误(来源:FARADAY :: CONNECTFAILED,CONNECTION FAILED,CONNECTION -CONNECTIND -CONNECT(2)对于" Localhost"端口9200错误的ruby Ruby在Rails上)。

您有Docker吗?对我来说,唯一的解决方案是完全启用Docker。其他,我认为问题是关于Docker使用的端口的问题。

如果您不喜欢像我这样的很多人,请删除它,然后就可以了。

相关内容

最新更新