繁体   English   中英

为什么Tire不以生产模式(RoR)连接到ElasticSearch?

[英]Why does Tire not connect to ElasticSearch in production mode (RoR)?

我有一个带有Ubuntu 10.04和Nginx的VPS,以及一个通过capistrano部署到它的Rails应用程序。 到目前为止,一切正常。 昨天,我试图集成Sunspot / Solr,这是一场灾难,因为它破坏了我的整个服务器和应用程序。 因此,今天我尝试将Tire / ElasticSearch组合使用以进行全文搜索。 在我本地的开发环境中,一切正常。 我通过自制软件安装了ES,并使其开始运行。 经过一点测试,我将应用程序部署到了VPS并在此服务器上安装了ES。 当我启动ES时,它给了我一个PID,并且似乎可以正常工作,但是问题是,似乎轮胎宝石无法连接或找到它。 因为我无法保存将被索引的对象或无法在数据库中搜索内容。 我总是收到消息(我自己将IP地址更改为0.0.0.0):

Started GET "/food?utf8=%E2%9C%93&query=hamburger" for 0.0.0.0 at 2011-12-22 16:43:07 +0100
Processing by PostsController#index as HTML
Parameters: {"utf8"=>"✓", "query"=>"hamburger"}
Completed 500 Internal Server Error in 11ms

Errno::ECONNREFUSED (Connection refused - connect(2)):
app/models/food.rb:23:in search'
app/controllers/food_controller.rb:12:inindex'

如果我尝试保存某些内容,则消息几乎相同,只是发生错误的代码行不同。

我一直在寻找几个小时来找出错误的出处,如果我错过了配置中的某些内容或问题是什么,但是我似乎找不到它。 我一直在想问题是a)即使没有配置设置,Tire也不知道如何找到ES b)IPTables或Nginx导致错误

而且我也无法打开my-domain.com:9200来访问ES,但这可能是由于Nginx所致。 唯一的问题是,我在网络上找不到任何遇到相同问题或共享方法的人。

我将衷心感谢您的帮助。

找到了问题。 在VPS上设置ES时,我设置了服务器的固定IP地址。 根据指南,这应该是正确的,但是删除该行并让ES自行搜索设置后,它终于可以工作了。

暂无
暂无

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

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