Rails Rails API 服务器选择

mingmingpao · 2015年05月25日 · 最后由 nickcen 回复于 2015年05月28日 · 3542 次阅读

我现在在用 Rails 作后端 API 服务器,仅仅是提供数据服务接口,没有任何页面渲染。这种情况下应该选择何种服务器架构我的 Rails 应用呢?

我想 Unicorn 是不是就够用了。我看到网上有推荐 Nginx -> Unicorn 的方式。我对 Nginx 不是很了解,不清楚 Nginx 在这当中起了什么作用。我这边仅仅提供 API 服务,不提供静态页面。暂时呢,也不考虑负载均衡。

谢谢各位了。

补充:我现在又遇到个问题了,发现在局域网里试 rails 的时候,不能在别的机器上通过 ip:port 访问,不知为什么

puma/unicorn/passenger/thin 其实用了再说吧。提前预测是好事。

即使你没有静态页面需要 nginx 传输,也最好放一个真正的 Web Server 在前面,比如 Nginx。 最基本的,Nginx 提供的日志能力用起来就比较方便,还有响应压缩等等,这些事情让 nginx 做都比 unicorn 好。如果你的 ip 地址和端口有限,再有其他的应用或者服务需要部署的时候也能用 nginx 进行分发。

虽然多串一个东西确实多一分麻烦和多一丝出故障的可能,但 Nginx 是很通用的东西了,安装使用差不多都标准化了,消耗资源也不多可靠性更没话讲,带来的好处远远超过麻烦。

简单的选择就是用 rainbows + Grape。

Nginx 可以挡慢链接,Unicorn 不能直接对外。

如果前面没有 Nginx 处理,Unicorn 会被很多恶意非恶意的连接搞得生活不能自理。 此外 Nginx 还帮你处理静态资源,这部分就完全不占用 Unicorn 的处理时间了。 当然,还是更多非常有用的功能,就不一一说了。

用 passenger 吧

先说说预估是要处理多大的请求量吧

#8 楼 @nickcen 一天也就几百吧

#6 楼 @kikyous 看了一下,官网比 Unicorn 漂亮

#9 楼 @mingmingpao 如果是这个数量级,我觉得用哪个服务器都关系不大。

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