ruby-on-rails - 关于如何在 nancy 服务和服务器之间建立连接的建议

标签 ruby-on-rails ruby http nancy

我正在做一个项目,我们在使用 tomcat 的 Ubuntu 服务器上托管站点(使用 ruby​​ on rails 开发)。我们希望这些站点对使用 Nancy 开发的服务进行 HTTP 调用。我们在本地工作,因此服务托管在我们可以在我们的网络中调用的机器上。然而,我们不能让它在现场工作。这是一个示例调用:

def get_call(routePath)
  started_at = Time.now
  enc_url = URI.encode("#{settings.service_endpoint}#{routePath}")
  uri = URI.parse(enc_url)
  http = Net::HTTP.new(uri.host, uri.port)   
  req = Net::HTTP::Get.new(uri.request_uri) 
  resp = http.request(req)
  logger.bench 'SERVICE - GET', started_at, routePath
  return resp if response_ok?(resp)
end

在本地工作时,设置如下:

settings.service_endpoint = http://10.10.10.27:7820
routePath = /Customers

当我们将其上传到服务器时,我们使用以下内容:

settings.service_endpoint = http://127.0.0.1:24099
routePath = /Customers

我们目前收到以下错误:

SocketError at /register
initialize: name or service not know

突出显示以下行:

resp = http.request(req)

我们是否完全错误地调用了 IP。应该是 127.0.0.1,本地主机。 10.10.10.27 还是完全不同的东西?奇怪的是我们可以在我们的 Ubuntu 服务器 (telnet 127.0.0.1 24099) 中通过 telnet 进行 GET 调用,所以这一定意味着服务器可以进行调用,但服务器上托管的站点不能。我们是否需要包含一个 HTTP 代理(已阅读一些引用资料,但真的不知道是否需要)。

如果这很明显,我们深表歉意,但我们之前从未尝试过这样的事情,所以这一切都非常令人困惑。需要任何进一步的信息,请告诉我。

最佳答案

我们将 service_endpoint 更改为 localhost,它起作用了。不确定这是因为它不喜欢“http://”还是其他原因。任何关于为什么会这样的解释将不胜感激,只是让我们知道。谢谢!

关于ruby-on-rails - 关于如何在 nancy 服务和服务器之间建立连接的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31477396/

相关文章:

ruby - 如何构建自己的 gem 并在另一个项目中使用它?

c# - 设置 Context.Response.StatusCode 似乎不起作用

ruby-on-rails - Heroku rails-problems((语法错误,意外的 ',',在 textarea-form-helper 中期望 ')')

sql - 按列分组并选择其他列作为 rails 中的列表

ruby-on-rails - rake 任务无法访问rails.cache

sockets - 传输一定数量的数据后 Chrome 挂起 - 等待可用的套接字

php - 检查 URL scheme 是 HTTP 还是 HTTPS

ruby-on-rails - 交易中的 Rails 交易?

ruby oracle-enhanced stuck connection after sleep

ruby - Nokogiri 说 2.9.0 以上的 Libxml2 版本坏了,是吗?