有一个简单的方法有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
这里也很好地说明了这一点: