Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过gem与Apache级别的Rails SSL重定向_Ruby On Rails_Ruby On Rails 3_Ssl - Fatal编程技术网

Ruby on rails 通过gem与Apache级别的Rails SSL重定向

Ruby on rails 通过gem与Apache级别的Rails SSL重定向,ruby-on-rails,ruby-on-rails-3,ssl,Ruby On Rails,Ruby On Rails 3,Ssl,我正在研究实现SSL以保护rails应用程序的最佳方法。目前的建议似乎是一直使用SSL。目前似乎有两种方法: 使用gem,如Rack::SSL或Rack::SslEnforcer,详细讨论如下: 在Web服务器级别重定向,此处推荐: 我确信,在Apache级别(假设有人正在运行Apache)进行重定向必须是一种方法,以简化实现和性能 我不明白,也没有看到解决的是,为什么在应用层使用gems会有如此多的精力和关注?DHH甚至有一条评论(上面第一个链接中的最后一条评论)说“Rails 3.1现在

我正在研究实现SSL以保护rails应用程序的最佳方法。目前的建议似乎是一直使用SSL。目前似乎有两种方法:

  • 使用gem,如Rack::SSL或Rack::SslEnforcer,详细讨论如下:

  • 在Web服务器级别重定向,此处推荐:

  • 我确信,在Apache级别(假设有人正在运行Apache)进行重定向必须是一种方法,以简化实现和性能

    我不明白,也没有看到解决的是,为什么在应用层使用gems会有如此多的精力和关注?DHH甚至有一条评论(上面第一个链接中的最后一条评论)说“Rails 3.1现在将在应用程序和控制器级别上都嵌入force_ssl。”那么我还缺少什么呢


    为什么要选择使用其中一个gem来始终使用SSL呢?

    force\u SSL是添加到Rails 3中的一个配置属性。它使应用程序使用Rack::SSL中间件。 参考:

    因此,config.force_ssl是一个方便的工具,可以让您避免弄乱机架堆栈;这是为你做的


    在Rails 2.X应用程序中,您将不需要强制ssl,而必须自己注入Rack::ssl或Rack::SslEnforcer。

    首先,这是Rails社区易于接受的标准。现在,无论何时您想要为Rails应用程序要求https,您都可以翻转这个开关,无论您使用的是什么服务器或其他体系结构,它都可以工作


    第二,如果您使用的是Heroku之类的托管服务,您将无法访问服务器配置设置。

    不过,如果我理解正确,您可以选择使用Web服务器将站点的所有流量重定向到SSL。当然,我已经更新了标题。