2013-03-22 31 views
1

我使用紅寶石1.9.3和rvm。我想用--ssl選項運行瘦服務器。我讀了一些答案,認爲運行「瘦開始-ssl」應該可以做到。 但在我的開發環境,當我運行瘦開始--ssl終端運行:運行「瘦啓動」時沒有收到數據

Using rack adapter 
Thin web server (v1.5.1 codename Straight Razor) 
Maximum connections set to 1024 
Listening on 0.0.0.0:3000, CTRL+C to stop 
And in my web-browser in localhost:3000: 

No data received 
Unable to load the webpage because the server sent no data. 
Here are some suggestions: 
Reload this webpage later. 
Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data. 

當我運行「軌道細瘦」相同的命令它雖然工作,具有不同的信息:

Booting Thin 
Rails 3.2.11 application starting in development on http:// 0. 0. 0 .0 :3000 
Call with -d to detach 
Ctrl-C to shutdown server 

我不知道爲什麼會發生這種情況(可能是因爲rvm),但瘦身正在進行中。我想運行第一個「瘦啓動--ssl」,因爲我不能在「rails s」命令中設置這個ssl選項。

+0

你的瀏覽器返回什麼狀態碼?我想知道是不是因爲您沒有爲Thin設置SSL證書?你有沒有設置類似的東西? – jordelver 2013-03-22 16:21:40

+0

那麼,我試圖運行瘦服務器的Rails服務器,並通過SSL證書建議在http://stackoverflow.com/questions/3604303/how-can-i-pass-ssl-options-into-rails-server-在護欄-3-0/7862689#7862689。但是,我收到狀態碼「錯誤107(net :: ERR_SSL_PROTOCOL_ERROR):SSL協議錯誤。」 – 2013-03-22 21:46:56

回答

0

一個更容易(也更真實世界)的解決方案是在你的rails應用程序前面運行一個web服務器(比如nginx)。該Web服務器將監聽http和https流量,然後將所有內容傳遞到端口3000到Rails(瘦)服務器。

+0

我想在本地安裝SSL,認爲它比首先安裝nginx和乘客配置我的生產服務器更容易。我不知道我在應用程序中遇到的問題是由於服務器中的SSL配置還是應用程序中的其他ssl_requirement文件引起的。 – 2013-03-22 21:49:03

+0

如何設置此服務器?我已經安裝了乘客和nginx到我的Ubuntu,但我仍然不知道如何配置他們在本地工作。 – 2013-03-25 13:23:54

+0

這裏是一個示例配置的鏈接。你真正在做的是讓nginx在80/433上偵聽,然後將兩個偵聽器指向相同的Rails應用程序:http://candidcode.com/2009/09/12/sample-nginx-with-phusion-passenger-configuration-文件到啓用的SSL / – messick 2013-03-25 19:51:07

1

我找到了我沒有收到數據的原因。如果任何人有相同的錯誤:

我跑了「瘦開始-ssl」,所以我的服務器只會響應https請求。所有的http請求都沒有回答,所以這就是爲什麼沒有數據(愚蠢)。默認情況下,HTTP請求進入端口80,而HTTPS請求進入端口443

「瘦開始--ssl」正常工作對本地調試SSL,您可以通過強制SSL的應用控制器測試你的整個應用程序(所以你不要發現自己處於相同的情況,沒有收到數據)。