1

私はruby1.9.3とrvmを使用しています。--sslオプションを指定してシンサーバーを実行したいと思います。「thinstart--ssl」を実行するとうまくいくはずだという回答をいくつか読んだ。しかし、私の開発環境では、thin start --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.

「railssthin」で同じコマンドを実行すると、別のメッセージで機能します。

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が原因)はわかりませんが、thinは適切に機能しています。「railss」コマンドでこのsslオプションを設定できなかったため、最初のバージョン「thinstart--ssl」を実行したかったのです。

4

2 に答える 2

1

「データが受信されていません」という理由がわかりました。誰かが同じエラーを抱えている場合:

サーバーが https リクエストにのみ応答するように、「thin start --ssl」を実行しました。すべての http リクエストが応答されなかったので、データがありませんでした (愚かな)。デフォルトでは、http リクエストはポート 80 に送信され、https リクエストはポート 443 に送信されます。

「thin start --ssl」は ssl をローカルでデバッグする場合にうまく機能し、アプリケーション コントローラーで ssl を強制することでアプリケーション全体をテストできます (データが受信されないという同じ状況に陥ることはありません)。

于 2013-03-25T13:41:10.477 に答える
0

はるかに簡単な (そしてより現実的な) 解決策は、Rails アプリの前で Web サーバー (nginx など) を実行することです。この Web サーバーは、http と https の両方のトラフィックをリッスンし、すべてをポート 3000 に渡して Rails (シン) サーバーに渡します。

于 2013-03-22T17:56:08.603 に答える