生产的Heroku(rails应用)上的“未知协议”盆景Elasticsearch

时间:2019-07-05 22:15:49

标签: ruby-on-rails elasticsearch heroku

我已经将rails 5应用程序部署到heroku,并且正在使用Bonsai Elasticsearch插件。我已经对其进行了配置,因此它可以从本地主机正确索引和搜索,但是在生产中失败

我按照v6.x的说明here安装了以下gem:

gem 'bonsai-elasticsearch-rails', '~> 6'
gem 'elasticsearch-model', github: 'elastic/elasticsearch-rails', branch: '6.x'
gem 'elasticsearch-rails', github: 'elastic/elasticsearch-rails', branch: '6.x'

尝试搜索或创建索引时,仅在prod中出现以下错误:

  

Faraday :: SSLError(返回SSL_connect = 1 errno = 0 state = SSLv2 / v3读取服务器问候A:未知协议)

也许还值得注意的是,我正在使用沙盒版的Bonsai和带有自动配置的SSL的付费heroku dyno。

1 个答案:

答案 0 :(得分:0)

我与Bonsai支持取得了联系,他们提供了以下信息来解决我的问题:

  

感谢您与我们联系。问题可能是由于Ruby客户端引入了Elastic的重大更改(请参阅讨论here)。 Elastic表示他们不打算修复它。

     

简单的解决方法是在群集URL的末尾附加:443。换句话说,是这样的:

     

https:// @ *。eu-west-1.bonsaisearch.net:443

基本上,他们将默认端口从443切换为9200,从而破坏了许多现有应用。