PHP是什么?
- php是一门开源脚本语言又称"超文本预处理器",一般主要用于网站编程,同时因为其开源的原因,很多资料都是可以免费获取。同时也因为php程序具有成本低,速度快,移植性高,函数库支持丰富等特点,深受it人事的喜爱。
php-fpm是什么?
- 什么是CGI?
公共网关接口(Common Gateway Interface,简称CGI),是外部扩展应用程序与web服务器交互的一个标准接口。程序猿只要通过CGI协议去编写程序,就可以实现与web server进行通信。CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。 - 什么是fastcgi?
用户通过程序与web server进行交互的时候,发现web server没收到一个请求,就会使用fork函数创建一个cgi进程,等请求结束的时候在干掉进程,当并发高的时候,严重拖垮web server性能,因此fastcgi也随着但是,通过fastcgi标准写的程序完全可以解决 CGI存在的问题,大大提升了进程的使用率,提升性能。FastCGI在每次处理完请求后,不会干掉进程,而是保留进程,等待二次/三次连接,这样可以极大提升进程的使用率,并且创建,删除进程都是要额外消耗系统资源的。 - 什么是php-fpm?
php-fpm是一个phpfastcgi的管理器,在php5.33版本之后php已经集成了php-fpm功能,通过php-fpm,php可以有效的控制内存,进程,平滑重载php.ini等功能,在php编译安装的时候带-enable-fpm参数就可以开启此功能。
在PHP跟Nginx的使用中,Nginx是通过php-fpm这个服务来处理php文件,也就是没有php-fpm,Nginx没法处理php文件。
php-fpm与Nginx交互的过程
*php-fpm与Nginx工作的过程
1.首先由浏览器通过http协议发送请求给Nginx。
2.Nginx接受到请求,首先对加载Nginx.conf配置对请求进行判断,发现是php资源,就直接通过location定义的php模块将数据转给后端的php-fpm进行处理。
3.php-fpm master进程会时刻监督本地的9000端口,一旦发现有请求过来直接将交给php-fpm work(子进程)进行处理,work进程会调用php-cgi解析器并且生成php执行环节在去解析对应的php文件。
4.解析完成后将响应(结果)传给Nginx,在由Nginx返回给浏览器。
转载:https://blog.csdn.net/yts1115084429/article/details/101214232
查看评论