CGI
1.CGI是什么?
- 公共网关接口
- common gateway interface,简称CGI
- 在物理层面上是一段程序,运行在服务器上,提供同客户端HTM页面的接口。
2.处理步骤:
- 通过Internet把用户请求发送到web服务器
- web服务器接收到用户请求并发送给CGI程序
- CGI程序把处理结果传送给web服务器
- web服务器把结果回到用户
图示说明过程:
综上所述,fastcgi效率是高于cgi的。
3.fastcgi
- FastCGi是语言无关的,可伸缩架构的CGI开放扩展
- 其主要行为是将CGI解释器进程保持在内存中进行管理调度因此获得较高的性能
- nginx下fastcgi与服务器是分离的
- fastcgi可使用spawn-fcgi或者php-fpm来管理
- 相当于一个代理工具
- 角色完成nginx和fastcgi之间的进程间通信
环境配置
处理不了的指令,交给fastcgi处理
数据需要转发
数据需要发送到指定的端口
#处理一个指令test
#url:http://192.168.xx.xx/test
location /test{
#配置fastcgi模块
fastcgi_pass 127.0.0.1:9001;
include fastcgi.conf;
}
4.spawn-fcgi的使用
- spawn-fcgi -a IP -p 端口 -f fastcgi程序
- -a -IP:服务器IP地址
- -p -port:服务器将数据发送到的端口
- -f -cgi程序:spawn-fcgi启动时的可执行fastcgi程序
安装过程遇到的问题
1.源码包
由于我们要安装fastcgi和spawn-fastcgi,在网上找来找去,发现这源码已经10来年没更新了,然后百度了半晌,发现csdn上有很多,但是鄙人穷,充不起c币。于是在OSCHINA找到了spawn-fcgi的安装包,在某不知名垃圾但还算良心的论坛找到了fastcgi的安装包。望后世之人省却些心力。
2.传文件
由于我在windows上下载的源码包,然后我们可以用secure-CRT通过rz命令传文件到你的虚拟机上。如果rs报错,则sudo apt install lrzsz即可。