2017-03-01 348 views
1

我收到錯誤:Puma發現此錯誤:無法打開TCP連接到localhost:9200(Connection refused - connect(2)for「localhost」port 9200)(Faraday :: ConnectionFailed)在ubuntu 14.04的rails應用程序中。未能打開TCP連接到本地主機:9200(連接被拒絕 - 連接(2)爲「本地主機」端口9200)(Faraday :: ConnectionFailed)

下面

是我的彈性搜索的終端輸出:

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

這裏是/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' 
+0

如果你只是在終端運行'elasticsearch',它會啓動嗎? –

回答

1

在您發佈的設置,您的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 

正如類似的問題指出,捲曲可以在Elasticsearch沒有運行(:Faraday::ConnectionFailed, Connection refused - connect(2) for 「localhost」 port 9200 Error Ruby on Rails源)給予拒絕連接錯誤。

+0

卸載並重新安裝彈性搜索,解決了我的問題。 – John

+0

好聽。這意味着這很可能是配置問題。我會說我的答案的第一部分提到的端口號。 – Donglecow

相關問題