关于FastCGI

xiaoxiao2021-03-01  51

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

相关资源:fastcgi-2.4.0安装包
转载请注明原文地址: https://www.6miu.com/read-4131767.html

最新回复(0)