2011-08-12 2 views
1

特定のコントローラでsslを使用するrails 2.3.12アプリケーションをロードするためにラックアプリケーションをマウントしようとしています。ここでは次のようになりますRails 2.3.12とHTTPSでラックアプリケーションをマウントできない

:「/ some_pathが見つかりません」: https://skitch.com/jimmybaker/fq7js/https-fail

私はHTTPSを使用するすべてのページを要求するまで、すべてが、私は言う真っ白なページ以上の何を取得され、正常に動作しますphusionの乗客+ nginx + reeを使って私のレールアプリを配備しています。私は私のRailsアプリケーションのルートに私のconfig.ruファイルを配置し、ここでそれがどのように見える:あなたが見ることができるように

#!/usr/bin/env ruby 
require 'logger' 
require 'config/environment' 
require 'resque/server' 

use Rack::ShowExceptions 

# Set the AUTH env variable to your basic auth password to protect Resque. 
AUTH_PASSWORD = 'xxxxxxx' || ENV['AUTH'] 
if AUTH_PASSWORD 
    Resque::Server.use Rack::Auth::Basic do |username, password| 
    password == AUTH_PASSWORD 
    end 
end 

run Rack::URLMap.new \ 
    '/'  => ActionController::Dispatcher.new, 
    '/resque' => Resque::Server.new 

、私は仕事を表示するためresqueウェブフロントエンドをロードしようとしています私のredisキュー。再び、私はresqueフロントエンドにアクセスすることができますが、問題は、これが私のレールアプリでsslを必要とするすべてのコントローラを破壊することです。

答えて

1

私はここにまったく同じことを持っているが、私は別の方法でそれをやった:

require File.dirname(__FILE__) + '/config/environment' 
require 'resque/server' 

Resque::Server.class_eval do 

    use Rack::Auth::Basic do |username, password| 
    begin 
     user = User.authenticate(username, password) 
     user && user.is_admin? 
    rescue AuthenticatedSystem::InvalidLogin 
     false 
    end 
    end 

end 

app = Rack::Builder.new { 
    use Rails::Rack::Static 

    map "/resque" do 
    run Resque::Server 
    end 

    map "/" do 
    run ActionController::Dispatcher.new 
    end 
}.to_app 

run app 
+0

私はまだこれを試していないが、私はすぐに行きますよ。これで問題が解決されたと言いますか?私はあなたの/ resqueをあなたの "/"の前にRack :: Builderでマッピングしていることに気付きました。私はそれが鍵であるかどうか疑問に思っています。 –

+0

ちょうど同じ問題を試してみました。私はラックで少し勉強して、見つけたら回答を投稿します。 –

関連する問題