次のコマンドでThinを起動する場合:
rails server thin
可能なオプションは、Rack :: Server#start:でRackからthinに伝播されます。
server.run wrapped_app, options
しかし、Rack :: Handler :: Thin#runでは、ハンドラーがこれらのオプションを使用していないことがわかります。
module Rack
module Handler
class Thin
def self.run(app, options={})
app = Rack::Chunked.new(Rack::ContentLength.new(app))
server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
options[:Port] || 8080,
app)
yield server if block_given?
server.start
end
end
end
end
コマンドラインからSSLモードでThinを使用する場合:
thin start --ssl
オプションはThin::Runner#parserで解析され、Controllers :: Controller#startで使用されます
Controllers :: Controller#startに似たコンテンツでRack :: Handler :: Thin#runにモンキーパッチを適用することをお勧めします。
結果は次のようになります。
module Rack
module Handler
class Thin
def self.run(app, options={})
app = Rack::Chunked.new(Rack::ContentLength.new(app))
server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
options[:Port] || 8080,
app)
server.ssl = true
server.ssl_options = { :private_key_file => PATH_TO_KEY_FILE, :cert_chain_file => PATH_TO_CERT_FILE }
yield server if block_given?
server.start
end
end
end
end