11FastCGI 用来作为 Web 服务器的设计方案,有着很多优点。要搭建这样一个服务,有一个最简单的办法来搭建,可以使用 Apache 以及 mod_fcgid 模块来实现。
鉴于网上有关 FastCGI 的中文资料(尤其是实战资料)比较少,下面就用 Ubuntu 11.04 及 Apache2. 为例,说明一下 FastCGI 服务器配置的基本流程。
Apache 及 mod_fcgid 模块的配置 首先,正确安装 Apache,这个直接从命令行安装就可以了:
$ sudo apt-get install apache2
然后,再安装 mod_fcgid 模块,同样可以直接从命令行安装:
$ sudo apt-get install libfcgi-dev
安装好 Apache 及 mod_fcgid 模块以后,再到配置文件
/etc/apache2/sites-enabled/-default
里配置一下有关 mod_fcgid 的选项(注意,根据 Apache 版本及安装方式不同,配置文件所在路径会有所不同,详细情况请查阅 Apache 手册),配置示例如下所示:
<Directory /var/www/>
SetHandler fcgid-script
Options +ExecCGI # Customize the next two directives for your requirements.
Order allow,deny
Allow from all
</Directory>
这里配置的目录,是指把后面编译好的 FastCGI 程序放到目录 /var/www/ 下,当然,你也可以选择任意一个 Apache 有权限运行的目录。
安装 fcig 开发库 在 Linux 下,需要安装库 libfcgi 才能在 C, C++, Java, Perl 等程序下开发 FastCGI 功能,这样才能在 C/C++ 程序里正确使用 FastCGI,fcgi 库把 FastCGI 封装好了,你不需要关注 FastCGI 协议的任何细节。可以使用下面的命令来安装:
$ sudo apt-get install libfcgi-dev
在你的工作目录里新建一个 .c 文件,并输入下面这段代码,并保证可以正确编译:
#include "fcgi_stdio.h"
#include <stdlib.h> void main(void)
{
int count = ;
while(FCGI_Accept() >= )
printf("Content-type: text/html\r\n"
"\r\n"
"<title>FastCGI Hello!</title>"
"<h1>FastCGI Hello!</h1>"
"Request number %d running on host <i>%s</i>\n",
++count, getenv("SERVER_NAME"));
}
使用下面的命令编译上述代码:
$ gcc tiny-fcgi.c -o tiny-fcgi -lfcgi
编译好的 FastCGI 程序应该可以直接运行(是的,就像普通可执行程序一样),会输出相关的结果,你可以试试。
然后把编译出来的文件,拷贝到上面 Apache 设置的 FastCGI 程序可执行目录里:
$ cp tiny-fcgi /var/www/
访问你的 FastCGI 服务 重启 Apache 服务:
$ sudo /usr/sbin/apachectl restart
然后在浏览器里输入类似下面的网址,就可以访问这个 FastCGI 提供的服务了: http://127.0.0.1/tiny-fcgi 小结 上述整体配置还算很简单,以后再介绍一些 FastCGI 高级使用技巧。FastCGI 这种比较古老的协议,特别适合用来设计需要做分布式计算、用 C 来实现计算代码的场景。服务器与计算引擎的分开,能很方便地让 Web 开发人员与后台服务器人员不受干扰,各自发挥自己的特长。

FASTCGI程序,做个备份,以后用的更多相关文章

  1. Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布

       FastCGI编程包括四部分:初始化编码.接收请求循环.响应内容.响应结束循环. FCGX_Request request; FCGX_Init(); ); FCGX_InitRequest(& ...

  2. 用c++写一个 “hello,world” 的 FastCGI程序

    原文:http://chriswu.me/blog/writing-hello-world-in-fcgi-with-c-plus-plus/ 上面的连接地址给出的是作者的原文地址. 另外一个作者稍微 ...

  3. 【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布

    http://blog.csdn.net/allenlinrui/article/details/19419721 1.介绍     Nginx - 高性能web server,这个不用多说了,大家都 ...

  4. 用BenchmarkDotNet给C#程序做性能测试

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用BenchmarkDotNet给C#程序做性能测试.

  5. 针对C#程序做性能测试的一些基本准则

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:针对C#程序做性能测试的一些基本准则.

  6. centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾

    centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾 系统:centos6.5 1.创建脚本目录 mkdir -p /usr/local/sh/ 创建备份web ...

  7. Nginx + FastCGI 程序(C/C++)搭建高性能web service的demo

    http://blog.csdn.net/chdhust/article/details/42645313 Nginx + FastCGI 程序(C/C++)搭建高性能web service的Demo ...

  8. 用微信小程序做H5游戏尝试

    微信小程序发布后,公司虽然没有拿到第一批内测资格,但作为微信亲密合作伙伴,一定要第一时间去尝试啦.现在微信小程序刚发布还在测试阶段,可以说是1.0版本,所以框架和结构内容都还不多,相关的文档跟微信AP ...

  9. macOS上实现Qt应用程序做文件关联打开

    一.背景介绍 用Qt开发的应用程序要实现文件关联,双击时用默认关联的程序打开文件,在Windows上这个功能非常容易实现.Windows应用程序在安装的时候可以在注册表中写入相关的键值对.打开文件的时 ...

随机推荐

  1. 2.1确定一个char包含何种字符

    知识点: 1.char.IsControl 2.char.IsPunctuation 3.char.IsSurrogate 4.char.IsWhitespace 5.char.IsDigit 6.c ...

  2. CSS Sprite小图片自动合并工具

    css-sprite是将css样式中零星的小图标,小图片合并成大图显示,这样能减小服务器并发连接数,减小服务器负载和带宽使用,有很高的实用价值.这里介绍一些自动合并图片并生成样式的工具. NodeJS ...

  3. Oracle 导入本地dmp文件 详细操作步骤

    以下操作均在命令行窗口中进行 /*连接数据库*/ C:\Users\hqbhonker>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Prod ...

  4. 浅谈Mybatis(三)

    一.动态SQL 1.sql片段 解决sql语句的冗余代码问题. <sql id="SELECT_T_USER"> select id,name,password,bir ...

  5. BZOJ 4311: 向量( 按时间分治 + 线段树 )

    离线, 然后按时间分治, 每个向量都有出现时间[l, r], 直接插入时间线段树(一个向量只会影响O(logN)数量级的线段树节点). 在线段树每个节点弄出凸壳然后二分. 时间复杂度O(Nlog^2N ...

  6. TCP/IP的网际层协议——ICMP

    ICMP经常被认为是IP层的一个组成部分.它携带于IP数据包中,ICMP封装在IP数据包内部: IP首部 ICMP数据包 下面是一份差错报文的例子: 最右边的+或者-代表该报文是查询报文还是错误报文. ...

  7. JQuery中serialize() 序列化

    更多2014/8/24 来源:jquery学习浏览量:1671 学习标签: serialize 本文导读:在jQuery中,当我们使用ajax时,常常需要拼装input数据以键值对(Key/Value ...

  8. 几年前无聊小游戏之作_WEB版本打泡泡

    几年前写的小东西 主要是H5画布的操作,还有个C语言基于WIN SDK开发的版本 找不到代码了 找到了再分享 <!DOCTYPE html> <script src="ga ...

  9. MySQL学习系列一---命令行连接mysql和执行sql文件

    1.命令行连接mysql #mysql -h(主机) -u(用户名) -p (数据库名) mysql -hlocalhost -uroot -p testdb Enter password: **** ...

  10. Node爬虫

    Node爬虫 参考 http://www.cnblogs.com/edwardstudy/p/4133421.html 所谓的爬虫就是发送请求,并将响应的数据做一些处理 只不过不用浏览器来发送请求 需 ...