FastCGI的优点
我们知道,CGI是不能利用内存来作为缓存的,因为它为每一个请求运行一次应用程序,并在完成任务后退出。而 FastCGI可以很有效地利用内存来作缓存,大大地提高了它处理请求的性能。单独的FastCGI应用程序和 CGI相比,也许并没有很好地利用缓存,而一旦FastCGI被设计成多线程,就可以运行并发处理多请求的应用程序进程,这样多线程就可以共享进程内存而访问同一缓存。
FastCGI的另一大优点是它可以利用分布式网络系统来完成大规模的系统集成。一个网站,要完成用户的交互性要求,至少要具备电子
邮件、BBS和
聊天室这三大功能,考虑到数据
安全性和数据库容量等因素,很少有网站把所有的数据都放在同一主机上。大家知道,由于进程环境原因,服务器只能调用本机的CGI应用程序,这就给多主机的分布式系统带来局限性。而FastCGI应用程序不从进程环境中获取CGI变量,而是在FastCGI 应用程序和服务器之间建立一个“全双工”的连接,传递环境信息、STDIN、STDOUT和STDERR。这样我们就可以把FastCGI应用程序放置在另外的主机上,利用TCP/IP协议与主服务器远程连接。在主服务器对FastCGI应用程序发出请求时可以像本地机一样作出响应。这样做的好处是:
1.可以扩大网路系统的规模
2.可以减轻同一服务器的负载
3.多服务器可共享同一FastCGI应用程序。
进入讨论组讨论。
如何编写FastCGI应用程序
让我们先来看看FastCGI是如何运行的:
正如你看到的一样, FastCGI在处理一个请求后继续保持运行,以便在新的请求到来时能立即处理请求。所以 FastCGI程序通常包括初始化代码段和封装程序主体的响应循环段,当然初始化完成后,主体程序不断循环运行等待请求的到来。只有在这个 FastCGI应用程序被系统撤销时循环才结束。
上一篇:
用Perl语言进行Socket编程
下一篇:
perl连接access数据库