Apache2.2 + FastCGI + GSoap 搭建 WebService

  1. 前言
    因工作需要,尝试将CS服务程序部署于Apache,尽管最后没有派上用场,还是抽空记录,也未尝是一次学习经历。
    其实最先采用的是CGI,但是测试发现:每收到一个CGI请求,Apache都会启动一个新的Web Service进程来响应请求,并在请求处理完毕后,自动杀死进程,等价来说,针对每一个请求,都需要重新启动exe文件。
    CGI与FastCGI对比

    在CGI不符合需求的情况下,顺尝试采用FastCGI。FastCGI工作原理:
    这里写图片描述

  2. 环境
    Win7 32位,VS2013,gsoap-2.8.33, mod_fcgid-2.3.9, fcgi-2.4.1,Apache 2.2.25。

  3. 下载
    为了方便,已将所有资料打包处理。
    Apache2.2 + FastCGI + gSOAP搭建 WebService工具

  4. Apache安装
    选择自定义安装,勾选”Build Headers and Libraries”。

  5. mod_fcgid.so编译
    解压mod_fcgid-2.3.9-crlf.zip后,用VS2013打开工程,修改工程属性:
    1)C/C++ / 附加包含目录:

C:\Program Files\Apache Software Foundation\Apache2.2\include
  2)连接器/附加库目录:
C:\Program Files\Apache Software Foundation\Apache2.2\lib

编译Release win32版本,生成文件mod_fcgid.so。

  1. libfcgi.dll/libfcgi.lib编译
    解压fcgi-2.4.1-SNAP-0910052249.tar.gz,用VS2013打开工程文件FastCGI.dsw,工程libfcgi编译Debug/Release win32版本,生成libfcgi.dll、libfcgi.lib。

  2. CSServer编译:
    Win7 X86 + VS2013 + FastCGI 实现

    注意,工程属性中:
    1)C/C++ / 附加包含目录:fcgi-2.4.1-SNAP-0910052249目录\include
    2)连接器/附加库目录:fcgi-2.4.1-SNAP-0910052249目录\libfcgi\Release
    3)连接器/附加依赖项:libfcgi.lib
    4)将libfcgi.dll拷贝至CSServer.exe所在目录下。

  3. Apache配置
    1)将第5步编译生成的mod_fcgid.so拷贝至目录“C:\Program Files\Apache Software Foundation\Apache2.2\modules”下。
    2)修改配置文件文件httpd.conf:
    增加代码,用于加载fastcgi模块:

LoadModule fcgid_module  modules/mod_fcgid.so

文件末尾增加:

<IfModule  mod_fcgid.c>
    <Directory "C:\Users\Administrator\Desktop\CSServer\Bin\Debug">
        SetHandler fcgid-script
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias  /myfcgid "C:\Users\Administrator\Desktop\CSServer\Bin\Debug\CSServerd.exe"
    IdleTimeout 3600
    ProcessLifeTime 7200
    MaxProcessCount 64
    DefaultMaxClassProcessCount 8
    IPCConnectTimeout 300
    IPCCommTimeout 7200
    BusyTimeout 300
</IfModule>

修改完成后,重启Apache服务器。

  1. 测试
    文中最后采用SoapUI进行简单测试,测试结果如下:
    简单实现两个数相加

参考文献:
[1] Apache Fast CGI C++程序开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值