Rails Rails4 (或者 Ruby2) 是否与 thin (+nginx) 存在兼容问题??

verfino · 2013年10月11日 · 最后由 verfino 回复于 2013年10月17日 · 3985 次阅读

用 nginx + thin 配置的 Rails4 + Ruby2.0

上线后发现,系统使用十几分钟后,就会发现假死。

nginx 的 error log 提示是一堆 timeout:

就像是 nginx 在等待 thin 给他一个返回结果,用来发送下一个 request 给 thin,但是 thin 确迟迟不动,按照 log 来看貌似是 upstream 挂了

rails 的代码正常。

已经很多天了,问题还是没得到解决,正想从 Rails4 降级回 Rails3,还是在社区里最后挣扎一下 Orz

可能是 thin 有问题吧

#1 楼 @windwiny 也感觉到是 thin 的问题,但在官方没看到有针对 Rails4 的特别说明

应该还是应用写的有问题。 可以试试换成 unicorn。

#3 楼 @swachian 感谢提供思路,我去用 unicorn 尝试下,如果成功了,那就是 thin 的问题。

#3 楼 @swachian 刚去官网看 结果尴尬了。。。。

@hooopo @jimrokliu
请问 thin 跟 Ruby2.0 不兼容,体现在哪些方面?直接部署失败吗?

换 unicorn 吧,你不会失望的。

#7 楼 @kgen thx 对 ruby2.0 的兼容可以吗?

#8 楼 @verfino 我们测试没问题。 RubyChina 也是 Ruby 2.0 跑在 unicorn 上面的,妥妥的。

我用的 thin+ruby2+rails4, 还没遇到问题

#6 楼 @verfino 刚开始的时候主要是 eventmachine 不兼容,因为 thin 是依赖 eventmachine 的,导致 thin 在最初的时候无法运行。后来 eventmachine 升级解决了和 2.0 的兼容性,目前 thin 在 2.0 下跑的很好。rails4 我没测试过,rails3 肯定是没问题。

#11 楼 @jimrokliu 我目前 eventmachine 的版本是 1.0.3

升级 eventmachine 的话用 https://github.com/eventmachine/eventmachine 这个可以不?

#5 楼 @verfino 估计是文档没更新吧。主机和 Heroku 上都用 unicorn+ruby2.0 跑过几个应用,表现很正常。2.0 和 1.9 的变化并不是很大。

我们有应用是 thin + ruby2 + rails 4 没遇到问题

我在开发模式下,ruby2 + rails4 + thin 1.5.1 没问题的

#14 楼 @qhwa 谢谢

#15 楼 @Victor 谢谢 我在开发模式下部署到本地服务器也是没问题的,但部署到远程 production 问题就来了。nginx 和 thin 的配置文档都是一致的,唯一不一样的地方在于 deploy.rb

#16 楼 @verfino 虽然不懂为什么,但是好像大神们都推荐 Nginx 搭配 Unicorn 的配置。我们产品环境是 Nginx + Passenger 单台 4 核 cpu 内存 4G 的服务器挺到几百万 PV 好像没啥压力的感觉。不知道为啥没人用 thin. 我是菜鸟,我看大神们没用,所以我们产品也没用。

看 app 的 log,有没有收到 request。如果没有,直接访问 app 服务器而不经过 web 服务器反响代理看看有没有响应。如果有,那就肯定跟 thin 没关了。

#18 楼 @winterwhisper 事实证明跟 thin 无关 多谢!

还是等多段时间在升级。。‘

#21 楼 @hooopo thx 每个人都有忙的时候噻~

需要 登录 后方可回复, 如果你还没有账号请 注册新账号