使用 Unicorn 和 Nginx 部署应用
1. 替代技术栈介绍
在技术领域中,除了常见的 Apache 和 Passenger 技术栈,由 nginx 和 Unicorn 组成的替代技术栈正迅速流行起来。
1.1 nginx
nginx 是一款 HTTP 服务器,其非阻塞架构是一大显著优势。这一架构使得它能够处理大量客户端请求,而无需为每个连接创建线程或进程。例如,移动客户端应用请求 HTML 页面时,服务器可能只需几毫秒就能生成页面,但由于移动客户端带宽有限,下载页面可能需要 5 - 10 秒。在大规模场景下,如果为每个此类请求维护线程或进程,服务器可能会耗尽可用的套接字连接,即便 CPU 仍有充足的处理能力。
1.2 Unicorn
根据其官网介绍,Unicorn 是一款专为 Rack 应用设计的 HTTP 服务器,旨在为低延迟、高带宽连接的快速客户端提供服务,并充分利用 Unix 或类 Unix 内核的特性。当与 nginx 这样的前端 HTTP 服务器配合使用时,Unicorn 表现出色。客户端向 nginx 发送 HTTP 请求,nginx 将请求转发给 Unicorn,Unicorn 构建并返回响应,然后 nginx 会根据带宽情况尽快将数据提供给客户端。与 Passenger 类似,Unicorn 为每个 Rails 应用实例运行在独立的进程中,因此不存在线程安全问题。同时,Unicorn 也管理着一个工作进程池,无需像 Mongrel 那样按需分配端口块。
超级会员免费看
订阅专栏 解锁全文
3227

被折叠的 条评论
为什么被折叠?



