Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 HTTPS协议上的Ruby on Rails Webrick服务器在几个小时后停止_Ruby On Rails_Ruby On Rails 3_Ssl_Webrick - Fatal编程技术网

Ruby on rails HTTPS协议上的Ruby on Rails Webrick服务器在几个小时后停止

Ruby on rails HTTPS协议上的Ruby on Rails Webrick服务器在几个小时后停止,ruby-on-rails,ruby-on-rails-3,ssl,webrick,Ruby On Rails,Ruby On Rails 3,Ssl,Webrick,我正在使用以下环境: Server: Webrick Rails: 3.2.6 Ruby: 1.9.3p555 我在/script/rails中添加了以下代码: require 'rails/commands/server' require 'rack' require 'webrick' require 'webrick/https' if ENV['SSL'] == "true" module Rails class Server < ::Rack::Server

我正在使用以下环境:

Server: Webrick
Rails: 3.2.6
Ruby: 1.9.3p555
我在/script/rails中添加了以下代码:

require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'

if ENV['SSL'] == "true"
  module Rails
      class Server < ::Rack::Server
          def default_options
              super.merge({
                  :Port => 443,
                  :environment => (ENV['RAILS_ENV'] || "production").dup,
                  :daemonize => false,
                  :debugger => false,
                  :pid => File.expand_path("tmp/pids/server.pid"),
                  :config => File.expand_path("config.ru"),
                  :SSLEnable => true,
                  :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
                  :SSLPrivateKey => OpenSSL::PKey::RSA.new(
                                   File.open("certs/project.key").read),
                  :SSLCertificate => OpenSSL::X509::Certificate.new(
                                   File.open("certs/project.crt").read),
                  :SSLCertName => [["CN", WEBrick::Utils::getservername]],
              })
          end
      end
  end
end

APP_PATH = File.expand_path('../../config/application',  __FILE__)
require File.expand_path('../../config/boot',  __FILE__)
require 'rails/commands'
在80和443上启动rails都使用两个不同的pid:

SSL=true rails s -p 443 -e production   
rails s -p 80 -P SERVER2 -e production
一切正常,但10-12小时后https协议停止响应浏览器,甚至日志文件中没有添加任何内容


请您确认问题所在以及如何解决问题?

您不应将Webrick用于任何生产用途,因为它是单线程的,性能可能会很差。我建议使用Unicorn+nginx进行调查。我已经与passenger和apache进行了设置。让我们看看它是否再次发生。这也是一个很好的组合。
SSL=true rails s -p 443 -e production   
rails s -p 80 -P SERVER2 -e production