关于FastCGI

FastCGI的技术原理

如果想了解FastCGI的技术原理就要了解何为"短生存期应用程序",何为"长生存期应用程序"。

先从CGI技术开刀,以下是CGI技术的理论:每次当客户请求一个CGI的时候,Web服务器就请求操作系统生成一个新的CGI进程。当CGI满足要求后,服务器就杀死这个进程。服务器对客户端的每个请求都要重复这样的过程。    而FastCGI技术的理论为:FastCGI程序一旦产生后,他可以持续工作,足够满足客户的请求直到被明确的终止。如果你希望通过协同处理来提高程序的性能,你可以请求Web服务器运行多个FastCGI 应用程序的副本。

CGI就是所谓的短生存期应用程序,FastCGI就是所谓的长生存期应用程序。

由于FastCGI程序并不需要不断的产生新进程,可以大大降低服务器的压力。并且产生较高的应用效率。

自今,较为流行的Java语言Servlet技术在设计上是以参考FastCGI的技术运行所设计。

[ 编辑 ]

FastCGI的特点

1. 打破传统页面处理技术

传统的页面处理技术,程序必须与Web服务器或Application服务器处于同一台服务器中。这种历史已经早N年被FastCGI技术 所打破, FastCGI技术的应用程序可以被安装在服务器群中的任何一台服务器,而通过TCP/IP协议与Web服务器通讯,这样做既适合开发大型分布式Web 群,也适合高效数据库控制。

2. 明确的请求模式

CGI技术没有一个明确的角色,在FastCGI程序中,程序被赋予明确的角色(响应器角色、认证器角色、过滤器角色)。

3. 合理的程序结构

起初,真的很讨厌FastCGI应用程序的结构要求。没关系,您经过一段时间编写后就会喜欢这种结构,只有这种完全规范的结构才能让您的程序更有效率。

[ 编辑 ]

Using FastCGI with Rails

$ /etc/init.d/httpd stop

$ sudo apt-get install libfcgi-dev
$ sudo gem install fcgi

FreeBSD user

$ sudo gem install fcgi -- --with-fcgi-include=/usr/local/include --with-fcgi-lib=/usr/local/lib

apache httpd. conf

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
    FastCgiIpcDir /tmp/fcgi_ipc/
    AddHandler fastcgi-script .fcgi
</IfModule>

Gentoo users

emerge fcgi ruby-fcgi mod_fastcgi
$ apache2ctl reload

public/dispatch.fcgi

charge require 'fcgi' to
require 'rubygems'
require_gem 'fcgi'

$ sudo gem update

public/.htaccess

charge RewriteRule ^(.*)$ /dispatch.cgi?$1 [QSA,L] 
to RewriteRule ^(.*)$ /dispatch.fcgi?$1 [QSA,L]

相关信息: http://wiki.rubyonrails.com/rails/pages/FastCGI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值