0

共有ホスティング アカウントで ssl_requirements プラグインを使用しています。このホスティング プロバイダーは、Passenger を使用して Rails を管理しています。SSLを必要とするページに移動しようとするまで、すべてが正常に機能します(ssl_requiredフィルターを追加することによって強制されます)。これが発生すると、Passenger がクラッシュし、500 エラーが返されます。エラーは次のとおりです。

 Passenger encountered the following error:
 The application spawner server exited unexpectedly: Broken pipe

 Exception class:
 PhusionPassenger::Railz::ApplicationSpawner::Error

基本的なシナリオは次のとおりです。

  1. ユーザーは http を使用して非機密データを参照しています。
  2. ユーザーがサインアップ フォームに移動します (https が必要です)。
  3. Ssl_requirement は、ユーザーが適切なプロトコルを使用していないことを確認し、https を使用する URL にリダイレクトします。
  4. Passenger はこのリクエストを受け取り、新しい Rails アプリケーションを生成しようとします。
  5. spawn_applicationメソッドを使用すると、エラーが発生してクラッシュする

問題は、問題が発生している場所がわからないことです。https プレフィックスを手動で入力でき、問題なく動作するため、https で問題になるとは思いません。問題は ssl_requirement プラグインか、パッセンジャーがこの新しい https リクエストを処理する方法にあると思います。

皆さんは、このようなシナリオに遭遇したことがありますか? もしそうなら、これを解決するためにいくつかのリソースを指摘できますか?

ありがとう。

4

2 に答える 2

1

メモリを使いすぎたために DreamHost がアプリを強制終了したため、おそらく Passenger エラーが発生しています。

spawn を使用していることを考えると、おそらくそれが理由です。spawn はまったく新しい Rails プロセスを作成します。

新しいアプリ インスタンスの生成を伴わないことを試してください。ただし、SSLの問題ではないと思います。

于 2009-05-20T20:27:46.470 に答える
0

独自の仮想ホスト Apache 構成にアクセスできますか? その場合は、ssl_requirement を使用する代わりに Redirect ディレクティブを使用して、http URL から https URL にリダイレクトするように構成することをお勧めします。私は Passenger でそうしましたが、問題なく動作しています。(したがって、Passenger が https または ssl を処理することに問題はありません。私の推測では、ssl_requirement プラグインと Passenger の間に何らかの非互換性があると思われます。)

于 2009-04-22T02:03:20.310 に答える