Сбой монтирования приложения в Rails 2.3.12 и HTTPS - PullRequest
1 голос
/ 12 августа 2011

Я пытаюсь смонтировать приложение стойки, чтобы загрузить его с моим приложением rails 2.3.12, которое использует ssl в некоторых контроллерах.Все работает отлично, пока я не запрашиваю любую страницу, которая использует HTTPS, и тогда я получаю только простую белую страницу с надписью «Not Found: / some_path»

Вот как это выглядит: https://skitch.com/jimmybaker/fq7js/https-fail

Я развертываю свое приложение rails, используя phusion passenger + nginx + ree.Я поместил свой файл config.ru в корень моего приложения rails, и вот как он выглядит:

#!/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-web дляпросмотр заданий в моей очереди redis.Опять же, я могу получить доступ к интерфейсу resque, проблема в том, что это ломает все контроллеры, которым требуется ssl в моем приложении rails.

1 Ответ

1 голос
/ 12 августа 2011

У меня здесь точно такая же вещь, но я сделал это по-другому:

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
...