FastCGI

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
第1行: 第1行:
 
 
http://www.fastcgi.com/
 
http://www.fastcgi.com/
  
第5行: 第4行:
 
如果想了解FastCGI的技术原理就要了解何为"短生存期应用程序",何为"长生存期应用程序"。
 
如果想了解FastCGI的技术原理就要了解何为"短生存期应用程序",何为"长生存期应用程序"。
  
  先从CGI技术开刀,以下是CGI技术的理论:每次当客户请求一个CGI的时候,Web服务器就请求操作系统生成一个新的CGI进程。当CGI满足要求后,服务器就杀死这个进程。服务器对客户端的每个请求都要重复这样的过程。
+
先从CGI技术开刀,以下是CGI技术的理论:每次当客户请求一个CGI的时候,Web服务器就请求操作系统生成一个新的CGI进程。当CGI满足要求后,服务器就杀死这个进程。服务器对客户端的每个请求都要重复这样的过程。
  而FastCGI技术的理论为:FastCGI程序一旦产生后,他可以持续工作,足够满足客户的请求直到被明确的终止。如果你希望通过协同处理来提高程序的性能,你可以请求Web服务器运行多个FastCGI 应用程序的副本。
+
  
 +
而FastCGI技术的理论为:FastCGI程序一旦产生后,他可以持续工作,足够满足客户的请求直到被明确的终止。如果你希望通过协同处理来提高程序的性能,你可以请求Web服务器运行多个FastCGI 应用程序的副本。
  
 
CGI就是所谓的短生存期应用程序,FastCGI就是所谓的长生存期应用程序。
 
CGI就是所谓的短生存期应用程序,FastCGI就是所谓的长生存期应用程序。

2006年9月10日 (日) 20:32的版本

http://www.fastcgi.com/

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

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱