PHP在开发WEB开发中,一个请求开始到最后的返回,都经过什么样的流程呢?想要了解这些,我们不可避免需要了解这几个技术:Nginx、FastCGI、PHP-FPM。这些技术和PHP语言本身构建WEB开发的服务,今天我们就来认识认识。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
Nginx 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
作为web开发者来说,Nginx并不陌生,Nginx同Apache一样都是一种WEB服务器。帮我们提供正向、反向代理、HTTP服务器等等功能。额外的扯一下什么是正向反向代理文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
1、正向代理:它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,它代理的是客户端,如我们常见的翻墙文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
2、反向代理:它隐藏了真实的服务端,它代理的是服务端,也就是说我们不知道具体是哪台服务器为我们服务,可以用来做负载均衡。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
FastCGI 和 PHP-FPM 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
说起FastCGI,我们就需要先了解一下CGI、PHP-CGI。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
1、CGI是WEB服务器和程序数据交流的一种协议,规范了标准输入、输出和环境变量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
2、PHP-CGI它的CGI的一种实现,目的就是为了实现WEB服务器和动态语言的通讯文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
3、但是呢,CGI程序它有一个缺点就是每一次web请求都会有启动和退出过程。这在如今大数据量,高并发请求来说,显得格外的严重。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
4、于是就有了FastCGI协议,FastCGI是CGI的升级版,让每个处理请求的PHP-CGI进程可以被重复利用,且进程的数量可以被管理。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
5、而PHP-FPM就是FastCGI的实现。它包含了master 进程和 worker 进程两种进程,master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
例子 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
结合例子说明一下,我们以 看下完整的请求流程是怎么样子的:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
1、:绑定host:`127.0.0.1 `文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
2、配置 的nginx配置文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
3、 上图的配置需要在nginx文件需要在nginx引入文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
4、配置的监听端口文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
5、php代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
6、浏览器展示文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
流程图如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/21573.html