我在共享主机帐户上使用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
这是一个基本情景:
问题是我不知道问题出在哪里。我不认为它可能是https的问题,因为我可以手动输入https前缀,事情将正常工作。我认为问题在于ssl_requirement插件或者乘客处理这个新的https请求的方式。
你们有没有遇到过这样的情景?如果是这样,你能指出一些资源来解决这个问题吗?
感谢。
答案 0 :(得分:1)
您可能会收到Passenger错误,因为DreamHost因使用太多内存而导致您的应用被杀。
鉴于您正在使用spawn,这可能就是原因 - spawn会创建一个全新的Rails进程。
尝试做一些不涉及产生新应用实例的事情。但我敢打赌,这不是SSL的问题。
答案 1 :(得分:0)
您是否可以访问自己的虚拟主机Apache配置?如果是这样,那么我建议您将其配置为使用Redirect指令从http URL重定向到https URL,而不是使用ssl_requirement。我已经这样做了,有了乘客,事情就好了。 (因此,乘客处理https或ssl没有问题。我的猜测是ssl_requirement插件和Passenger之间存在一些不兼容。)