我在DreamHost上托管Ruby on Rails 2.0.2应用程序。它位于Apache 2服务器上,运行在Phusion Passenger之上。
应用程序经常返回500错误“Rails应用程序无法正常启动”,但是随机时间。它似乎发生在应用程序负载较高时,但我无法确认。它每天只能获得大约2,000次综合浏览量,所以我认为加载不应该是一个问题。
Apache日志将这500个响应与错误相关联:“脚本标头过早结束”。只需在今天上午9点查看日志,错误就会显示为每分钟三到四次。这显然是不可接受的。
不太常见的情况是,应用程序向一个带有堆栈跟踪的Phusion Passenger页面和错误的“Broken pipe”投掷。
Rails日志不会列出任何这些错误。
在DreamHost上托管的暂存和实时网站上都会发生这种情况,但我无法在本地开发服务器上复制它。
所以我想真正的问题是:我从哪里开始调试此问题?
答案 0 :(得分:9)
事实证明,我只是在DreamHost共享服务器上访问了我的内存上限。
我在一个帐户下运行了多个Rails应用程序,其中许多仅用于测试和原型设计。 Rails使用了大量内存,所以我很快就达到了我的分配。支持人员告诉我“我检查了我们的日志,并且在过去的三天里它杀死了你的一个红宝石过程2325次”。 糟糕。
解决方案:如果可以提供帮助,请尽量不要在共享环境中运行Rails。我很快就会将至少一个应用程序切换到VPS主机。
答案 1 :(得分:1)
您是否正在运行最新版本的乘客(撰写本文时为2.2.2)。我自己有一些错误,但升级乘客安装后大部分(如果不是全部)都消失了。
如果这不是答案,您可以随时尝试将rails版本升级到2.3并查看问题是否仍然存在。