Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails AWS can上的Rails应用程序';无法访问ElasticSearch服务,但Rails控制台可以_Ruby On Rails_Amazon Web Services_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Ruby On Rails,Amazon Web Services,elasticsearch" /> elasticsearch,Ruby On Rails,Amazon Web Services,elasticsearch" />

Ruby on rails AWS can上的Rails应用程序';无法访问ElasticSearch服务,但Rails控制台可以

Ruby on rails AWS can上的Rails应用程序';无法访问ElasticSearch服务,但Rails控制台可以,ruby-on-rails,amazon-web-services,elasticsearch,Ruby On Rails,Amazon Web Services,elasticsearch,我在AWS上运行了一个Rails应用程序,并决定将Amazon ElasticSearch(AES)添加到该应用程序中。如果我转到控制台创建索引并运行搜索,我就能够使它正确运行。但是,如果我尝试从应用程序运行(通过转到浏览器并在浏览器上运行页面),在控制台上运行的同一搜索将失败,并在日志中提供以下错误: Started GET "/customers/search" for 168.0.184.214 at 2018-07-24 18:31:04 -0400 Processing by Cust

我在AWS上运行了一个Rails应用程序,并决定将Amazon ElasticSearch(AES)添加到该应用程序中。如果我转到控制台创建索引并运行搜索,我就能够使它正确运行。但是,如果我尝试从应用程序运行(通过转到浏览器并在浏览器上运行页面),在控制台上运行的同一搜索将失败,并在日志中提供以下错误:

Started GET "/customers/search" for 168.0.184.214 at 2018-07-24 18:31:04 -0400
Processing by CustomersController#search as HTML
^[[1m^[[36mUser Load (1.8ms)^[[0m  ^[[1m^[[34mSELECT  "users".* FROM "users"   WHERE "users"."deleted_at" IS NULL AND "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2^[[0m  [["id", 30], ["LIMIT", 1]]
Completed 500 Internal Server Error in 40ms (ActiveRecord: 12.2ms)

Elasticsearch::Transport::Transport::Errors::NotFound ([404] <html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.12.0</center>
</body>
</html>
):

app/controllers/customers_controller.rb:8:in `map'
app/controllers/customers_controller.rb:8:in `search'
nginx配置文件是:


有人对可能出现的问题有什么建议吗?

好的,这个问题比我想象的还要容易

问题是Nginx正在使用Puma,重新启动Nginx不会重新启动Puma进程,因此我尝试的任何更改都不会应用于正在运行的应用程序。这就是为什么它在控制台上工作,而不是在实际应用中


基本上,彪马解决了这个问题。是的,听起来很愚蠢:)

我忘了说我用的是gems:elasticsearch模型和elasticsearch Rails只是在黑暗中拍摄的。是不是
rails c
在开发模式下运行,而
rails s
在生产模式下运行?@DennyMueller我试过了,但它在控制台(rails c)上的任何环境下都可以正常工作
 class CustomersController < ApplicationController
   def search
     @page = params[:page] || 1
     @per_page = params[:per_page] || 10
     s = Customer.custom_search({first_name:'Paul'}).results.map(&:first_name)

   end
 end
 config = {
   host: "https://vpc-t2-es-i5qqpdv4k4pvq3smnj3nc46f74.us-east-1.es.amazonaws.com/",
   transport_options: {
     request: { timeout: 10000 }
   }
 }

 Elasticsearch::Model.client = Elasticsearch::Client.new(config)