作者
QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118
参考
ngnix官网
spawn-fcgi官网
Socket中winsock.h和winsock2.h的不同
Nginx安装与使用
Nginx + CGI/FastCGI + C/Cpp
三大WEB服务器对比分析(apache ,lighttpd,nginx)
Nginx + FastCGI架构部署指导
nginx + spawn-fcgi + fastCgi配置web服务并测试
Windows下配置nginx+FastCgi + Spawn-fcgi
【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布
Windows下Nginx的启动、停止等命令
pkg-config的用法
fcgiwrap官网
nginx配置cgi
让Nginx支持CGI
nginx常用命令
start nginx #启动
nginx.exe #启动,窗口一直处于执行中,不能进行其他命令操作
nginx.exe -s stop #快速停止nginx,不保存相关信息
nginx.exe -s quit #完整有序的停止,保存相关信息
nginx.exe -s reload #重新载入Nginx
nginx.exe -s reopen #重新打开日志文件
nginx -v #查看Nginx版本
安装
ngnix有windows版本可直接下载,spawn-fcgi下载源码,编译,spawn-fcgi.exe在src文件夹下,cygwin下使用绝对路径,
$ ./configure --prefix=*/dog/program/cgi/spawn-fcgi-1.6.4/bin
$ make
$ make install
下载fcgiwrap,编译,pkg-config不能用,待定位原因
$ ./configure --prefix=/cygdrive/c/dog/program/cgi/fcgiwrap-1.1.0/bin CFLAGS="-I/cygdrive/c/dog/program/cgi/fcgi2-2.4.2/bin/include -Wno-implicit-fallthrough" LDFLAGS=-L/cygdrive/c/dog/program/cgi/fcgi2-2.4.2/bin/lib systemd_LIBS=-L/cygdrive/c/dog/program/cgi/fcgi2-2.4.2/bin/lib
$ make
$ make install
配置fastcgi
nginx配置文件,
location = /cmd {
fastcgi_pass 127.0.0.1:8088;
fastcgi_index index.cgi;
include fastcgi.conf;
}
运行或重启nginx,在cygwin里运行spawn-fcgi.exe
,
$ ./spawn-fcgi.exe -a 127.0.0.1 -p 8088 -f /cygdrive/c/dog/program/cgi/fcgi2-2.4.2/examples/echo.exe -n
$ spawn-fcgi: child spawned successfully: PID: 282
$ kill 282
浏览器输入http://localhost/cmd
,显示,
fastcgi开发包其实自带了启动程序cgi-fcgi
,
$ ./cgi-fcgi.exe -start -connect 127.0.0.1:8088 /cygdrive/c/dog/program/cgi/fcgi2-2.4.2/examples/echo.exe
$ ps
PID PPID PGID WINPID TTY UID STIME COMMAND
291 265 291 8108 pty0 197609 22:42:15 /usr/bin/ps
290 1 289 8852 pty0 197609 22:41:50 /cygdrive/c/dog/program/cgi/fcgi2-2.4.2/examples/.libs/echo
265 264 265 10676 pty0 197609 22:30:23 /usr/bin/bash
264 1 264 14024 ? 197609 22:30:23 /usr/bin/mintty
$ kill 290
配置cgi
nginx配置文件,
location ~ \.cgi$ {
root cgi-bin;
fastcgi_pass 127.0.0.1:8081;
fastcgi_index index.cgi;
include fastcgi.conf;
}
运行,
$ ./spawn-fcgi.exe -a 127.0.0.1 -p 8081 -f /cygdrive/c/dog/program/cgi/fcgiwrap-1.1.0/bin/sbin/fcgiwrap.exe -n
浏览器输入http://localhost/cgictest.cgi
,显示,