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


        主进程可以处理以下的信号:
        命令说明 备注
        TERM, INT 快速关闭
        QUIT 从容关闭
        HUP 重载配置用新的配置开始新的工作进程    从容关闭旧的工作进程
        USR1 重新打开日志文件
        USR2 平滑升级可执行程序
        WINCH 从容关闭工作进程

6)默认目录结构
        主目录:/usr/local/nginx/
        配置目录:/usr/local/nginx/conf/
        root目录:/usr/local/nginx/html/

可执行文件路径:/usr/local/nginx/sbin/


3.2.spawn_fastcgi的安装、部署与配置
    spawn_fastcgi  https://github.com/lighttpd/spawn-fcgi

这里使用的是1.6.3的版本 https://github.com/lighttpd/spawn-fcgi/releases/tag/v1.6.3
   
    下载以后解压并安装(请记得看README)
    如果没有configure,请先执行./autogen.sh,生成configure
   
    ./configure

make


    编译好以后,将可执行文件移动到nginx的sbin目录下

cp ./src/spawn-fcgi /usr/local/nginx/sbin/ (cp到nginx的安装目录下)

3.3.fastcgi库的安装(库绝对不是必须的,觉得技术好的大牛可以自己写)
    库地址
    下载以后,解压并安装 (默认安装)
    ./configure

make

make install


4.Demo和web发布
4.1.Demo程序
    [CGI程序]   

#include <fcgi_stdio.h>
#include <stdlib.h>

int main() {
    int count = 0;
    while (FCGI_Accept() >= 0) {
        printf("Content-type: text/html\r\n"
                "\r\n"
                ""
                "FastCGI Hello!"
                "Request number %d running on host%s "
                "Process ID: %d\n", ++count, getenv("SERVER_NAME"), getpid());
    }
    return 0;
}

[编译]
    g++ demo.cc -o demo  -lfcgi​ 

直接运行可执行文件,看看能否正常运行。如果出现缺少库libfcgi.so.0,则自己需要手动把/usr/local/lib/libfcgi.so.0库建立一个链接到/usr/lib/目录下:ln -s /usr/local/libfcgi.so.0 /usr/lib/(或者把so的库路径添加到/etc/ld.so.conf,并执行ldconfig更新一下)


4.2.Web发布
    1)将CGI可执行程序移动到nginx的安装目录下 /usr/local/nginx/cgibin (文件夹不存在则自己创建)


    2)启动spawn-fcgi管理进程,并绑定server IP和端口(不要跟nginx的监听端口重合)

/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 8088 -f /usr/local/nginx/cgibin/demo


    查看一下9002端口是否已成功:netstat -na | grep 8088
​ 
    3)更改nginx.conf配置文件,让nginx转发请求


    在http节点的子节点-"server节"点中下添加配置
    location ~ \.cgi$ {
        fastcgi_pass 127.0.0.1:8088;
        fastcgi_index index.cgi;
        fastcgi_param SCRIPT_FILENAME fcgi$fastcgi_script_name;

include fastcgi_params;
    }


    4)重启nginx或者重新加载配置文件
    重新加载配置文件
    sudo kill -HUP [pid]
    或者
    重启nginx   
    killall nginx

​    ./nginx


    5)打开浏览器访问一下吧
   

搞定收工,心里又小小的激动了一把!

Nginx 的详细介绍请点这里
Nginx 的下载地址请点这里

相关阅读

CentOS 6.2实战部署Nginx+MySQL+PHP

使用Nginx搭建WEB服务器

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

CentOS 6.3下Nginx性能调优

CentOS 6.3下配置Nginx加载ngx_pagespeed模块

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0489939aa9939214f8c716b005d10150.html