nginx + spawn-fcgi + fastCgi配置网络服务器服务并测试

之前的两篇文章(nginx安装配置、nginx各种应用总结及测试)对nginx的安装配置和应用进行了探讨,本文介绍一下用nginx + spawn-fcgi + fastCgi配置网络服务器服务的方法,并给出一个测试示例:

(一)首先需要安装fcgi

下载fcgi-2.4.0.tar.gz并解压

root用户登录安装

$ cd fcgi-2.4.0.

$ ./configure

$ make 

$ make install

make的过程中出现如下错误:

解决方法是修改 fcgi-2.4.0/include/fcgios.h,加入 #include <stdio.h>,然后再make不再报错。

(二)安装spawn-fcgi

下载spawn-fcgi-1.6.4.tar.gz并解压

$ cd spawn-fcgi

$./configure

$make

$ make install

(三)配置web-service

修改/usr/local/nginx/conf/nginx.conf中的server配置(具体解释可见nginx安装配置)

 server {
        listen       80;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        location /test{
            fastcgi_pass   127.0.0.1:39114;
            fastcgi_index  index.cgi;
            include        fastcgi.conf;
        }

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
	}

其中fastcgi_pass配置了fastcgi的监听地址及端口(不能与其他端口重复,否则报错),与服务器的监听端口(80)不同。

(四)测试

写一个测试程序作为fastcgi调用的处理进程,也就是web解析处理进程。测试程序如下:

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

int main(void) 
{  
    while (FCGI_Accept() >= 0) 
    {  
        printf("Content-type: text/html\r\n"  
                "\r\n"  
                ""  
                "FastCGI test!");  
 
    }  
	
    return 0;  
} 

编译:

$ gcc -o  fcgiTest fcgiTest.c -lfcgi

注:如果找不到lfcgi,也就是找不到动态码,先检查/usr/local/lib或者指定的安装目录(比如/usr/local/fastcgi/)里有没有响应的动态库,没有的话需要安装fastcgi,如果有的话,可以采用如下两种方法解决:

(1)修改/etc/ld.so.conf

在/etc/ld.so.conf  加入动态库/usr/local/lib

然后执行 ldconfig

(2)修改环境变量

可以在用户的.bashrc或者.profile中修改LD_LIBRARY_PATH,加入动态库路径,多个路径使用:分隔

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/nginx/lib


接下来启动nginx:

$ /usr/local/nginx/sbin/nginx

启动spawn-fcgi (绑定的地址和端口需要与nginx.conf配置的一致):

$ usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 39114 -f /media/sf_share/git/project/fcgi/fcgiTest


可以使用netstat -an |grep 39114命令查看端口监听状态:


然后再浏览器中输入http://127.0.0.1/test,测试结果如下图:


spawn-fcgi 绑定了监听端口,一直运行等待请求,如果想要停止可以使用kill命令:

查看进程ID


$ kill -9 8795  杀死进程关闭spawn-fcgi 

文章来源: nginx + spawn-fcgi + fastCgi配置网络服务器服务并测试

人吐槽 人点赞

猜你喜欢

发表评论

用户名: 密码:
验证码: 匿名发表

你可以使用这些语言

查看评论:nginx + spawn-fcgi + fastCgi配置网络服务器服务并测试