Puma服务器是一款开源的web服务器,专为提高速度和并发性而设计,主要为Ruby web程序提供高速处理以及HTTP1.1并发的服务器小型库文件,以可移植的方式提供快速准确的HTTP1.1协议解析,方便进行数据的传输。
软件功能
专为提高速度和并发性而设计
Puma使用C优化的Ragel扩展(继承自Mongrel)处理请求,该扩展以可移植的方式提供快速,准确的HTTP 1.1协议解析。然后,Puma使用线程池处理请求。每个请求都在单独的线程中处理,因此真正的并发Ruby实现(JRuby,Rubinius)将使用所有可用的CPU内核。
Puma被设计为Rubinius的首选服务器,但与JRuby和MRI配合也很好。
在MRI上,有一个全局VM锁(GVL),可确保一次只有一个线程可以运行Ruby代码。但是,如果您要进行大量的阻塞IO(例如对外部API(如Tw itter)的HTTP调用),Puma仍然可以通过允许IO等待并行进行来提高MRI的吞吐量。
使用说明
快速开始
$ gem install puma
$ puma
如果没有参数,puma将在名为config.ru的工作目录中寻找一个rackup(.ru)文件。
∨ 展开