36

pow很棒,但是我的应用程序中的许多东西都假设为 https,并且通过它们并添加“如果不是开发环境”会很痛苦。是否可以使用 pow 服务 https?

4

7 回答 7

48

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

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

无需配置。

于 2012-10-26T17:08:47.647 回答
16

选项 1:使用隧道完成Pow

我一直对 Tunnels 解决方案有疑问,这很好,但浏览器会注意到它不安全,例如在玩 CORS 时会让你头疼。

我已经测试过PowSSL 解决方案(使用 Stud 的解决方案),但它缺少HTTP_X_FORWARDED_PROTO.它是HTTPS)。

但是后一种方法很棒,因为它为所有配置的 POW.dev域生成了一个有效的证书!

所以我构建结合了这两种方法的隧道:它是隧道的一个分支,它增加了证书生成!

我希望你会喜欢它,如果你想完成它,请随时发送拉取请求,这只是现在在 MacOS X 上工作的快速破解......

选项 2:切换到Invoker(现在使用我的 fork ......)

Invoker 是 Pow 的绝佳替代品,因为它本机包含 HTTPS 支持。您无需在 Pow 之上添加其他解决方案即可获得 HTTPS!

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

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

这些限制并不难克服,我提出了2 个更改的拉取请求。在它被接受之前,您可以使用以下命令安装分叉版本:

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

使用这个 fork,您将能够使用全局配置,例如~/.invoker.ini这样的:

[my-rails-app]
port = 3000

[my-sinatra-app]
port = 9292

[default]
port = 9292

...并使用以下命令将 Invoker 作为代理运行:

invoker ~/.invoker.ini -d
于 2013-08-16T11:45:08.610 回答
7

POW 目前不支持 SSL ( https://github.com/37signals/pow/issues/5 )。但是,许多其他人也有同样的愿望,所以希望它会包含在未来的版本中!

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

编辑:

最新更新是 POW 可以使用 Nginx 配置 SSL,如下面的指南所述:

https://gist.github.com/gvarela/928606/

于 2011-05-23T23:09:47.957 回答
7

使用 stunnel 创建到 pow 服务器的隧道。

像:

stunnel3 -f -d 443 -r 127.0.0.1:80
于 2011-07-14T03:08:40.683 回答
5

我最近为此创建了一个使用螺柱隧道的脚本。 https://gist.github.com/2050941#file_gistfile1.md

于 2012-03-16T19:32:32.693 回答
3

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

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

于 2011-06-09T12:22:11.667 回答
0

这也很好地涵盖在这里:

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

于 2012-08-24T08:47:43.320 回答