我的应用程序还没有完全准备好使用完整的 SSL,所以与此同时,我允许 SSL 但不需要它。对于某些控制器,我确实需要 SSL,并强制重定向到 HTTPS 以在此类控制器中执行操作。
我可以通过thin start --ssl
. 这非常适合 SSL 测试。但是,我不能在同一个端口上同时运行 HTTP 和 HTTPS。显然,这使得测试从 HTTP 到 HTTPS 的重定向非常令人沮丧。我可以在上面运行 Apache 或 nginx 服务器,但我真的不想在我的开发环境中遇到麻烦。
要启动两台服务器,一台用于 SSL,一台不用于 SSL,我使用 foreman,如下所示:
web: rails server
ssl: thin start --ssl -p 3001
这会在端口 3000 上启动 HTTP 服务器,在 3001 上启动 HTTPS 服务器。现在我的问题是。如何仅在我的开发环境中创建“智能重定向”策略,以便从 HTTP 到 HTTPS 的重定向智能地将端口从 3000 更改为 3001?谢谢!