当前位置:首页 » 编程语言 » fastcgic语言

fastcgic语言

发布时间: 2023-06-01 01:19:23

㈠ 如何用c实现fastcgi文件上传

如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。

㈡ nginx+FastCGI+C/C++的搭建http服务器的问题

建议:
1、使用短连接,nginx+fastcgi不太适合长连接应用
2、如果使用长连接,请设置并调整nginx.conf中fastcgi相关的参数,比如buffer之类

㈢ 用C语言进行web后端编程有什么不妥

如果你的目的只是开车,你是愿意买辆车开哪,还是造辆车开呢??? 后者不是你想的那么容易。。。C语言理论上什么都能干,但实际上又好像什么也做不了。。。。用C语言做高级编程总会绕很大一圈,原因是缺乏现成的工具,很多时候你不得不自己去做,但前提是你会不会做。。。。
C语言肯定可行,但你有什么眉目吗???

㈣ 用C语言开发FastCGI应用程序


I/O函数包
FastCGI软件开发套件,开源的WebServer 2.0服务器包含I/O函数包用与简化把已存在的CGI程序转成FastCGI程序或者编写FastCGI程序,在开发套件中有两个函数包:fcgi_stdio 和 fcgiapp,在你的程序中必须包含这些包中的改亩一个:
fcgi_stdio.h fcgiapp.h fcgi_stdio包,是fcgiapp包的顶层包,在转化CGI程序或者是写新的FastCGI程序是,我们强烈推荐你用它,fcgi_stdio包有以下几个优点或悄:
简单:只要有三个性的API需要学。
易懂:如果你正包CGI程序转化为FastCGI程序,你会发现CGI程序与FastCGI程序之间只有很少的区别。在我们设计函数库的时候我们尽可能的 把FastCGI应用程序变得容易理解,以至于我们在建立新FastCGI程序的时候我们使用相同的环境变量,相同的解析查询字符串的技术,以及相同的 I/O程序等。
方便:这个库函数提供了CGI和FastCGI二进制的文件的完美兼容。因此不管是CGI还是FastCGI,都同样运行。
代码结构
FastCGI的代码构成,把你的代码分成两个独立部分:
1.初始化部分:只执行一次
2.应答循环部分:FastCGI脚本每被调用一次,这部分九被执行一次
一个应答循环的典型格式如下:
while (FCGI_Accept() = 0) {//循环条件
# 应答循环体
}
知道一个客户端请求来的时候FCGI_Accept块才执行,并返回0。如果有一个系统故障,或是系统管理员终止进程,Accept将返回-1。
如果应用程序作为一个CGI程序被调用,那么第一次调用Accept时,返回0,第二次总是返回-1,产生CGI行为。(请详见20页的"FCGI_Accept (3)" )
注意,在CGI中鼓励用小脚本,然而在FastCGI中则鼓励使用组合式的脚本。你可以在从新构想你的程序的全局结构,来获得FastCGI的高性能。
例1: TinyFastCGI
这是一个用C语言写的一个简单FastCGI应答程序例子:
#include "fcgi_stdio.h"
#include stdlib.h
int count;
void initialize(void)
{
count=0;
}
void main(void)
{
initialize();
while (FCGI_Accept() = 0) {
printf("Content-type: text/html "
" "
"titleFastCGI Hello! (C, fcgi_stdio library)/title"
"h1FastCGI Hello! (C, fcgi_stdio library)/h1"
"Request number %d running on host i%s/i ",
++count, getenv("SERVER_HOSTNAME"));
}
}
例2:原始数据产生器
思考一下,一个应答应用程序产生第N次原始数据。
一个CGI应用程序将没有有效的方法来解决这个问题。例如,如果用户访问第50000次的原始数据,那么CGI应用程序就不许从第一条原始数据开始计算,知道第50000条的,要是应用程序终止衫歼渣,伴随着她辛苦积累的数据也会随之消失。
如果一个客户端想访问第4900条原始数据,那么服务器必须重新开始积累。
由于我们能维持这个状态,FastCGI应用程序对与这样的问题就更有效。一个FastCGI应用程序在初始化阶段能够计算一个扩展的源数据的表,并保持表的不同范围。当客户端请求一个特别原始数据的时候,循环应答需要从表里查询。
这里有一个原始数据代码事例:
#include "fcgi_stdio.h"
#include stdlib.h
#include string.h
#define POTENTIALLY_PRIME 0
#define COMPOSITE 1
#define VALS_IN_SIEVE_TABLE 1000000
#define MAX_NUMBER_OF_PRIME_NUMBERS 78600
long int sieve_table[VALS_IN_SIEVE_TABLE];
long int prime_table[MAX_NUMBER_OF_PRIME_NUMBERS];
void
initialize_prime_table(void)
{
long int prime_counter=1;
long int current_prime=2, c, d;
prime_table[prime_counter]=current_prime;
while (current_prime
VALS_IN_SIEVE_TABLE) {
for (c = current_prime; c = VALS_IN_SIEVE_TABLE;
c += current_prime) {
sieve_table[c] = COMPOSITE;
}
for (d=current_prime+1; sieve_table[d] == COMPOSITE; d++);
prime_table[++prime_counter]=d;
current_prime=d;
}
}
void main(void)
{
char *query_string;
long int n;
initialize_prime_table();
while(FCGI_Accept() = 0) {
printf("Content-type: text/html "
" ");
printf("titlePrime FastCGI/title "
"h1Prime FastCGI/h1 ");
query_string = getenv("QUERY_STRING");
if(query_string == NULL) {
printf("Usage: Specify a positive number in the query string. ");
} else {
query_string = strchr(query_string, `=') + 1;
n = strtol(query_string);
if(n
1) {
printf("The query string `%s' is not a positive number. ",
query_string);
} else if(n
MAX_NUMBER_OF_PRIME_NUMBERS) {
printf("The number %d is too large for this program. ", n);
} else{
printf("The %ldth prime number is %ld. ", n, prime_table[n]);
}
}
}
}
这个应用程序在初始化时有一个显而意见的开销,但是后来的访问是快速的。

㈤ 如何配置lighttpd能够执行C语言写的fastcgi程序

写CGI,是可以的

~
~
~

㈥ 关于什么是什么是CGI

什么是CGI
CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。
CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等
什么是FastCGI
FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去太阳城fork一次(这是CGI最为 人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。
FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,太阳城CGI解释 器的反复加载是CGI性能低下的主要原因,如果CGI解斗腔释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail- Over特性等等。
FastCGI与CGI特点
1、如CGI,FastCGI也具有语言无关性.
2、如CGI, FastCGI在进程中的应用程序,独立于核心web服务器运行,提供了一个比API更安全的环境。(APIs把应用程序的代码与核心的web服务器链接 在一起,这意味着在一个错误的API的应用程序可能会损坏其他应用程序或核心服务器; 恶意的太阳城API的应用程序代码甚至可以窃取另一个应用程序或核心服务器的密钥。)
3、FastCGI技术目前支持语言有:C/C++、Java、Perl、Tcl、Python、SmallTalk、Ruby等。相关模块在Apache, ISS, Lighttpd等流行的服务器上也是可用的。
4、如CGI,FastCGI的不依赖于任何Web服务器的内部架构,因此即使服务器技术的变化, FastCGI依然稳定不变。
FastCGI的工作原理
1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Mole)
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来空高衫自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将太阳城CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。
在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化太阳城全部数据结构。使用 FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
FastCGI的不足
因为是多进程,所以比CGI多线程消耗更多的服务器内存,PHP-CGI解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存念烂数。
Nginx 0.8.46+PHP 5.2.14(FastCGI)服务器在3万并发连接下,开启的10个Nginx进程消耗150M内存(15M*10=150M),开启的64个php- cgi进程消耗1280M内存(20M*64=1280M),http://tyangcdh.com加上系统自身消耗的内存,总共消耗不到2GB内存。如果服务器内存较小,完全可以只开启25 个php-cgi进程,这样php-cgi消耗的总内存数才500M。

㈦ 护卫神PHP套件出现"FastCGI"等错误怎么解决

把应用程序开发功能选择上就可以了,PHP的CGI版本,CGI的功能是必须选择的。模块IsapiMole通知ExecuteRequestHandler处理程序PHP-Handler错误代码0x800700
或 处理程序“AboMapperCustom-5095705”在其模块列表中有一个错误模块“IsapiMole”在IIS安装ISAPI扩展即可。

热点内容
linux的gz解压命令 发布:2024-05-05 18:24:13 浏览:310
服务器机柜属于什么辐射 发布:2024-05-05 18:02:10 浏览:335
存储成本计算 发布:2024-05-05 18:02:10 浏览:583
如何把手机改安卓10 发布:2024-05-05 17:39:07 浏览:497
我的世界怎么扩容服务器内存 发布:2024-05-05 17:19:54 浏览:48
java读取文件字符 发布:2024-05-05 17:15:18 浏览:11
三星怎么应用加密 发布:2024-05-05 17:13:18 浏览:152
cad字体在那个文件夹 发布:2024-05-05 17:08:20 浏览:331
什么时候用编译器 发布:2024-05-05 17:08:20 浏览:766
应急救援脚本 发布:2024-05-05 17:08:17 浏览:338