2012-01-02 50 views
0

如何設置Rails 3.1應用程序以在生產環境中並行運行HTTP和HTTPS?Rails 3.1設置爲與HTTP和HTTPS並行運行應用程序

另外您如何在HTTP和HTTPS之間共享會話?

感謝

+0

如果應用程序可以HTTP或HTTPS模式運行,爲什麼要使用HTTPS?你的目標是什麼? – Zabba 2012-01-02 18:06:05

+0

我特別想使用HTTPS登錄和註冊。主頁面將被重定向到HTTP,因爲它包含不安全的內容,並不需要任何安全性。其他頁面可以是HTTPS或HTTP,具體取決於用戶。 – davicta 2012-01-02 19:19:10

回答

1

我用bartt/ssl_requirement它允許你以確保某些動作,比如:

class ApplicationController < ActionController::Base 
    include ::SslRequirement 
end 

class AccountController < ApplicationController 
    ssl_required :signup, :payment 
    ... 
end 

對於路徑,您只需設置:secure => true

<% form_tag session_path(:secure => true), :class => 'home_login' do -%> 

要禁用的發展,將其添加到config/environments/development.rb的配置塊中:

config.after_initialize do 
    SslRequirement.disable_ssl_check = true 
    end 

如果你使用一個安全的子域名就像我在Heroku上這樣做,你可以添加到這個配置/環境/ production.rb:

config.after_initialize do 
    SslRequirement.ssl_host = 'secure.example.com' 
end 

以及:domain => :allconfig/initializers/session_store.rb這樣對話跨共享所有域名。例如:

MyAppName::Application.config.session_store :cookie_store, key: '_myappname_session', :domain => :all 
相關問題