我在共享主机帐户上使用 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
这是一个基本场景:
- 用户正在使用 http 浏览非敏感数据。
- 用户转到注册表单(需要 https)
- Ssl_requirement 发现用户没有使用正确的协议并将他们重定向到使用 https 的 url。
- 乘客收到此请求并尝试生成一个新的 Rails 应用程序。
- 当它使用spawn_application方法时,它会遇到错误并崩溃
问题是我不知道问题出在哪里。我不认为这可能是 https 的问题,因为我可以手动输入 https 前缀并且一切正常。我认为问题在于 ssl_requirement 插件或乘客处理这个新 https 请求的方式。
大家有遇到过这样的场景吗?如果是这样,您能否指出一些资源来解决这个问题?
谢谢。