本文共 1980 字,大约阅读时间需要 6 分钟。
首先了解cgi是何物,他的官方名称是公共网关接口(Common Gateway Interface,CGI)。按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。
说人话就是可以配合前端的请求来实现与服务器的交互比如:数据库操作等。 每一次请求调用cgi时,都打开一个cgi进程,这样会浪费大量的创建、回收资源的时间与资源。访问少也就算了,一旦遇到一定规模的请求时,服务器简直想直接宕机,给它个痛快。由于每次请求cgi时都要创建进程,我直接给你开个进程或一堆进程,等你请求我就处理不就可以了?所以fast-cgi诞生了。他可以有效减少由于进程直接创建与销毁之间的资源浪费问题。
使用ubuntu通过apt 默认安装
sudo apt install nginx -y
使用ubuntu通过apt 默认安装
sudo apt install spawn-fcgi
使用fcgi-2.4.1来开发,需要自行下载
解压之后,三板斧!./configure
如果make出错需要在/include/fcgio.h文件中加一句#include
make
sudo make install
下面这几句分别执行。
如果/usr/目录下没有lib64,只有lib32,就将lib64改为lib32sudo ln -s /usr/local/lib/libfcgi.so.0 /usr/lib/libfcgi.so.0sudo ln -s /usr/local/lib/libfcgi.so.0 /usr/lib64/libfcgi.so.0sudo ln -s /usr/local/lib/libglog.so.0 /usr/lib/libglog.so.0sudo ln -s /usr/local/lib/libglog.so.0 /usr/lib64/libglog.so.0
如果你使用默认配置,打开/etc/nginx/nginx.conf 在http{ }里添加如下代码
IP地址改成ubuntu的IPserver { listen 80; # 访问的域名或IP地址 server_name 192.168.2.136; location /test{ #配置fastcgi模块 fastcgi_pass 127.0.0.1:9001; include fastcgi.conf; } }
#include "fcgi_stdio.h"#includeint main(){ while(FCGI_Accept() >= 0){ printf("Content-type: text/html\r\n""\r\n""""FastCGI Hello!");}return 0;}
编译
gcc test.c -o test.cgi -lfcgi
sudo spawn-fcgi -a 127.0.0.1 -p 9001 -f ./test.cgi
成功返回进程pid
启动并使用配置文件(默认位置)
sudo nginx -c /etc/nginx/nginx.conf
在浏览器打开
http://192.168.2.136/test转载地址:http://puewi.baihongyu.com/