Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.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 在Rails 2.3.12和HTTPS中安装机架应用程序失败_Ruby On Rails_Nginx_Passenger_Redis_Resque - Fatal编程技术网

Ruby on rails 在Rails 2.3.12和HTTPS中安装机架应用程序失败

Ruby on rails 在Rails 2.3.12和HTTPS中安装机架应用程序失败,ruby-on-rails,nginx,passenger,redis,resque,Ruby On Rails,Nginx,Passenger,Redis,Resque,我正在尝试安装一个机架应用程序,以加载我的rails 2.3.12应用程序,该应用程序在某些控制器中使用ssl。在我请求任何使用HTTPS的页面之前,一切都很正常,然后我只得到一个纯白色的页面,上面写着“找不到:/some_path” 下面是它的样子: 我正在使用phusion passenger+nginx+ree部署我的rails应用程序。我将config.ru文件放在rails应用程序的根目录下,如下所示: #!/usr/bin/env ruby require 'logger' req

我正在尝试安装一个机架应用程序,以加载我的rails 2.3.12应用程序,该应用程序在某些控制器中使用ssl。在我请求任何使用HTTPS的页面之前,一切都很正常,然后我只得到一个纯白色的页面,上面写着“找不到:/some_path”

下面是它的样子:

我正在使用phusion passenger+nginx+ree部署我的rails应用程序。我将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前端,问题是这会破坏我rails应用程序中所有需要ssl的控制器。

我这里有完全相同的东西,但我用了不同的方式:

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

我这里有完全相同的东西,但我用了不同的方式:

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

我还没试过这个,但我很快就会试的。你是说这解决了问题吗?我注意到您已在Rack::Builder中将/resque映射到“/”之前。我想知道这是不是关键…刚试过,还是一样的问题。我会在机架上研究一下,如果我找到答案,我会把答案贴出来。我还没试过,但我很快就会。你是说这解决了问题吗?我注意到您已在Rack::Builder中将/resque映射到“/”之前。我想知道这是不是关键…刚试过,还是一样的问题。我会在架子上研究一下,如果我找到答案,我会把它贴出来。