2012-11-30 39 views
1

我使用Rails 3.0.x,並且在輸出方面出現問題。如何使用thin和ssl獲得乾淨的輸出?

當我使用:

rails server thin 

薄型顯示器的處理要求的清單,並記錄他們,幾乎完全一樣的WEBrick一樣。這很好,但是我沒有找到任何方法在這個命令中使用ssl模式下的Thin。

要在SSL模式下使用薄,指示here,我用下面的命令(加論據SSL):

thin start --ssl ... 

使用此命令,日誌尚好,但瘦不以任何輸出標準輸出。

所以,我想:

thin start --trace 

但現在瘦SSL模式寫入所有請求和標準輸出,包括JavaScript,圖片所有響應

薄(!) ,有沒有辦法輸出所有處理過的請求,就像webrick所做的那樣?

回答

1

當啓動細跟的命令:

rails server thin 

可能的選項是從機架傳播到薄的機架服務器::#啓動:

server.run wrapped_app, options 

但在機架::處理程序: :細#運行,我們可以看到處理程序不使用這些選項:

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 

當usi通過命令行納剋薄SSL模式:

thin start --ssl 

選項被解析薄::亞軍#編譯器,然後在控制器中使用::控制器#啓動

我會建議猴補丁機架:: Handler :: Thin#以類似於Controllers :: Controller#start的內容運行。

其結果將是這樣的:

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 
+0

能否請您鏈接此源代碼在GitHub上?我似乎無法在那裏找到它。 – Zabba