2009-04-18 4 views
0

J'utilise le plugin ssl_requirements sur un compte d'hébergement partagé. Ce fournisseur d'hébergement utilise Passenger pour gérer les Rails. Tout fonctionne bien jusqu'à ce que j'essaie d'aller à une page qui nécessite ssl (imposée en ajoutant le filtre ssl_required). Lorsque cela se produit Passenger se bloque et renvoie une erreur 500. L'erreur se lit comme suit:Crash passager lors de la tentative d'utilisation de https

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

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

Voici un scénario de base:

  1. utilisateur utilise le protocole HTTP pour parcourir les données non sensibles.
  2. L'utilisateur accède au formulaire d'inscription (où https est requis)
  3. Ssl_requirement voit que l'utilisateur n'utilise pas le protocole approprié et le redirige vers une URL utilisant https.
  4. Le passager reçoit cette demande et tente de générer une nouvelle application de rails.
  5. Quand il utilise la méthode spawn_application rencontre une erreur et se bloque

Le problème est que je ne sais pas où le problème se produit. Je ne pense pas que cela puisse être un problème avec https parce que je peux taper manuellement le préfixe https et tout ira bien. Je crois que ce problème réside soit dans le plugin ssl_requirement ou la façon dont le passager gère cette nouvelle demande https.

Avez-vous déjà rencontré un scénario comme celui-ci? Si oui, pourriez-vous indiquer quelques ressources pour résoudre ce problème?

Merci.

Répondre

1

Vous avez probablement l'erreur Passenger car DreamHost a tué votre application pour avoir utilisé trop de mémoire. Étant donné que vous utilisez spawn, c'est probablement la raison: spawn crée un processus Rails entièrement nouveau. Essayez de faire quelque chose qui n'implique pas la création d'une nouvelle instance d'application. Je parierais cependant que ce n'est pas une question de SSL.

0

Avez-vous accès à votre propre configuration d'hôte virtuel Apache? Si c'est le cas, je vous recommande de configurer cette redirection de l'URL http à l'URL https en utilisant la directive Redirect, au lieu d'utiliser ssl_requirement. Je l'ai fait avec Passenger, et ça marche très bien. (Il n'y a pas de problème avec Passenger handling https ou ssl.) Je suppose qu'il y a une incompatibilité entre le plugin ssl_requirement et Passenger.)

+0

Je pense que c'est ce que je vais faire, mais comment avez-vous mis en place votre environnement de développement? – vrish88

+0

J'ai mon environnement de développement sur un serveur séparé (sur un réseau local) et une configuration apache différente sans https. Mais vous pouvez simplement avoir deux hôtes virtuels sur le même serveur, l'un avec SSL et l'autre sans. –

Questions connexes