CGI + FastCGI(PHP-FPM)联系和区别的图解 + 注释
2024-10-16 20:43:31
一、背景
参考了几篇文章,总结成图解 + 注释方便以后查阅。
参考资料:
1、https://www.zhihu.com/question/19582041
2、https://segmentfault.com/q/1010000000256516
二、CGI
对一个 CGI 程序,做的工作其实只有:从环境变量(environment variables)和标准输入(standard input)中读取数据、处理数据、向标准输出(standard output)输出数据。
1、环境变量 中存储的叫 Request Meta-Variables,也就是诸如 QUERY_STRING、PATH_INFO 之类的东西,这些是由 Web Server 通过环境变量传递给 CGI 程序的,CGI 程序也是从环境变量中读取的。
2、标准输入 中存放的往往是用户通过 PUTS 或者 POST 提交的数据,这些数据也是由 Web Server 传过来的。
二、FastCGI(PHP-FPM)
fastcgi是一个协议,php-fpm实现了这个协议
1、php-fpm是php内核的一个补丁?
以前是对的。因为最开始的时候php-fpm没有包含在PHP内核里面,要使用这个功能,需要找到与源码版本相同的php-fpm对内核打补丁,然后再编译。后来PHP内核集成了PHP-FPM之后就方便多了,使用--enalbe-fpm这个编译参数即可。
2、平滑重启?
修改php.ini之后,php-cgi进程的确是没办法平滑重启的。php-fpm对此的处理机制是新的worker用新的配置,已经存在的worker处理完手上的活就可以歇着了,通过这种机制来平滑过度。
最新文章
- Wrestling Match---hdu5971(2016CCPC大连 染色法判断是否是二分图)
- Java中的Object类介绍
- java78_c
- MongoDB的主从复制和副本集
- Spring远端调用的实现-Spring Http调用的实现
- C++中string中的erase函数怎么使用
- Angular - - $sce 和 $sceDelegate
- Action的创建和配置
- 解决 ImportError: No module named _internal
- CITROEN C8 BSI HC12 Mileage Correction with Digiprog3
- Spark记录-Scala基础程序实例
- uml的几种关系总结
- AngularJs和Vue比较
- supervisor使用总结
- Swift3 文件操作常用方法汇总
- 【NLP】文本相似度
- OpenStack-Queens版 实践
- 执行一条sql语句update多条记录实现思路
- Tensorflow平台快速搭建:Windows 7+TensorFlow 0.12.0
- caddy server 几个常用插件