FastCGI提供了一种改进方法 表现成千上万的Perl 已编写的应用程序 为了网络。 - Source
它是如何做到的?
答案 0 :(得分:10)
标记R.布朗的whitepaper on the subject声称的FastCGI的的主要好处之一是,不同的请求可以共享单个高速缓存,使得缓存实用:
当今部署最广泛的Web服务器API基于进程池服务器模型。 Web服务器由父进程和子进程池组成。进程不共享内存。传入请求随机分配给空闲子节点。在接受新请求之前,子项运行请求完成。典型的服务器有32个子进程,大型服务器有100或200个。
内存缓存在此服务器模型中的效果非常差,因为进程不共享内存,并且传入的请求随机分配给进程。例如,为了在内存中保留一个经常使用的文件,服务器必须为每个子项保留一个文件副本,这会浪费内存。修改文件后,需要通知所有子项,这很复杂(API不提供这样做的方法)。
FastCGI旨在实现有效的内存缓存。请求从任何子进程路由到FastCGI应用程序服务器。 FastCGI应用程序进程维护一个内存缓存。
答案 1 :(得分:8)
“而不是为...创建新流程 每个请求,FastCGI使用持久性 处理一系列的过程 要求。这些流程归自己所有 FastCGI服务器,而不是网络 服务器“。
答案 2 :(得分:4)
它重用了池中的进程,而不是为每个请求生成一个新进程。