有一个简单的方法有pow服务https?

pow很棒,但是我的应用程序中很多东西都假设为https,并且通过它们join“如果不是开发环境”会是一件痛苦的事情。 有可能有pow服务https?

我发现的最简单的方法是使用隧道: https : //github.com/jugyo/tunnels

$ gem install tunnels $ rvmsudo tunnels # or just use sudo if using rbenv 

不需要configuration。

scheme1:用Tunnelss完成战俘

我一直在与隧道解决scheme ,这是伟大的问题,但会被视为不安全的浏览器 ,这会让你头痛的时候,与CORS玩。

我已经testing了PowSSL解决scheme (使用Stud的那个),但是它缺less了HTTP_X_FORWARDED_PROTO ,当你的应用程序需要知道它是否通过HTTP或HTTPS请求时,会导致另一系列令人头疼的问题(好吧,它永远不会知道这是HTTPS)。

但是后面的方法非常好,因为它为所有configuration的POW .dev域生成了一个有效的证书!

所以我build立了隧道结合了两种方法 :隧道分叉,它增加了证书生成!

我希望你会喜欢它,如果你想完成它,随时发送拉请求,这只是一个快速的黑客工作在MacOS X现在…

选项2:切换到调用者 (使用我的叉子 …现在)

Invoker是Pow的一个很好的替代品,因为它原生包含了HTTPS支持。 您不必在Pow的顶部添加另一个解决scheme来获取HTTPS!

但是,与鲍比相比,我发现它有两个限制:

  • 你必须为每个进程指定一个命令,以便能够运行它,
  • 你不能有一个默认的规则,处理所有的请求到本地主机,并代理他们到一个特定的应用程序。

这些限制并不难克服,我对这两个变化提出了要求 。 直到它被接受,你可以使用这个安装分叉版本:

 git clone https://github.com/rchampourlier/invoker invoker -b proxy-only-mode cd invoker gem build invoker.gemspec gem install invoker-1.5.0.gem 

有了这个分支,你就可以使用全局configuration,例如~/.invoker.ini就像这样:

 [my-rails-app] port = 3000 [my-sinatra-app] port = 9292 [default] port = 9292 

…并使用此命令将Invoker作为代理运行:

 invoker ~/.invoker.ini -d 

目前POW不支持SSL( https://github.com/37signals/pow/issues/5 )。 然而,一些其他人有你的相同的愿望,所以希望它会包括在未来的版本!

如果您不想经历修改代码的麻烦,最好的替代解决scheme是设置Apache并生成开发SSL证书。 这将需要修改你的主机文件,并不像POW那样“光鲜”,但是从好的方面来说,它避免了烦人的环境特定的条件。

编辑:

最新的更新是可以使用Nginx使用SSLconfigurationPOW,如以下指南所述:

http://shiny-bits-of-code.tumblr.com/post/4749553253/ssl-proxy-with-nginx

使用stunnel创build一个到pow服务器的隧道。

喜欢:

 stunnel3 -f -d 443 -r 127.0.0.1:80 

我最近创build了一个脚本,使用这个螺柱隧道。 https://gist.github.com/2050941#file_gistfile1.md

目前有一种方法可以在使用SSL的同时仍然使用POW,通过nginx设置SSL代理。

看看: http : //shiny-bits-of-code.tumblr.com/post/4749553253/ssl-proxy-with-nginx

这里也很好地说明了这一点:

http://railscasts.com/episodes/352-securing-an-api