是否可以通过类似 ssh-tunnel 的方式向 Savon 发出请求。我可以从我的阶段服务器运行这些东西,它的 IP 在我发送请求的服务中被列入白名单。但是我当然想在我的电脑上进行开发 :P 那么有什么选择吗?我已经在许多组合中尝试过 savon 的代理:选项,例如
proxy: "http://name:password@my_stage_server.com"
等我正在使用 Ruby on Rails。
最佳答案
SSH 隧道是必经之路。它们很容易设置,在一个终端 session 中使用:
ssh -L 8080:servicehost:80 myuser@stagingserver
建立后,保持打开状态。它将在您的本地主机上打开端口 8080 作为到主机 TCP 服务的隧道:443。将 savon 指向 http://localhost:8080/some/url/to/service
以访问在 http://servicehost/some/url/to/service
上运行的服务>.
如果您经常需要它,将它添加到您的ssh 配置文件 会很方便,该文件位于~/.ssh/config
。这是一个纯文本文件,上面的示例如下所示:
Host staging
HostName hostname.domain
LocalForward 8080 servicehost:80
User myuser
使用此配置,您只需发出 ssh staging
即可打开隧道。您可以设置更多选项,请引用the MAN page了解详情。
主机名解析
请记住,主机名servicehost
必须是可解析的从您的暂存服务器,而不是您的开发机器。您也可以使用 IP 地址。
关于ruby-on-rails - 通过另一台机器请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15294089/