请求通过另一台机器

时间:2013-03-08 12:34:13

标签: ruby-on-rails ruby soap xmlhttprequest savon

是否可以通过类似ssh-tunnel的方式向Savon发出请求。我可以从我的发送请求的服务中将IP列入白名单的舞台服务器运行这些东西。但当然我想在我的电脑上进行开发:P那么有没有选择呢?我已经在许多组合中尝试了savon的代理:选项,例如

proxy: "http://name:password@my_stage_server.com"

等。我正在使用Ruby on Rails。

1 个答案:

答案 0 :(得分:1)

SSH隧道是可行的方法。它们很容易设置,在一个终端会话中使用它:

ssh -L 8080:servicehost:80 myuser@stagingserver

一旦建立,请将其保持打开状态。它将在您的localhost上打开端口8080,作为到主机的TCP服务的隧道:443。将savon指向http://localhost:8080/some/url/to/service以访问http://servicehost/some/url/to/service上运行的服务。

如果您经常需要,可以方便地将其添加到位于~/.ssh/config ssh配置文件中。它是一个纯文本文件,上面的示例如下所示:

Host staging
  HostName hostname.domain
  LocalForward 8080 servicehost:80
  User myuser

使用此配置,您只需发出ssh staging即可打开隧道。您可以设置更多选项,有关详细信息,请参阅the MAN page

主机名解析

请注意,主机名servicehost必须可以从您的登台服务器解析,而不是您的开发计算机。您也可以使用IP地址。