在PHP作为目前一种使用程度较高的编程语言,PHP在开发WEB开发中,一个请求开始到最后的返回,都经过什么样的流程呢?想要了解这些,我们不可避免需要了解这几个技术:Nginx、FastCGI、PHP-FPM。这些技术和PHP语言本身构建WEB开发的服务,今天我们就来认识认识。
Nginx
作为web开发者来说,Nginx并不陌生,Nginx同Apache一样都是一种WEB服务器。帮我们提供正向、反向代理、HTTP服务器等等功能。额外的扯一下什么是正向反向代理
1、正向代理:它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,它代理的是客户端,如我们常见的FQ
2、反向代理:它隐藏了真实的服务端,它代理的是服务端,也就是说我们不知道具体是哪台服务器为我们服务,可以用来做负载均衡。
FastCGI 和 PHP-FPM
说起FastCGI,我们就需要先了解一下CGI、PHP-CGI。
1、CGI是WEB服务器和程序数据交流的一种协议,规范了标准输入、输出和环境变量。
2、PHP-CGI它的CGI的一种实现,目的就是为了实现WEB服务器和动态语言的通讯
3、但是呢,CGI程序它有一个缺点就是每一次web请求都会有启动和退出过程。这在如今大数据量,高并发请求来说,显得格外的严重。
4、于是就有了FastCGI协议,FastCGI是CGI的升级版,让每个处理请求的PHP-CGI进程可以被重复利用,且进程的数量可以被管理。
5、而PHP-FPM就是FastCGI的实现。它包含了master 进程和 worker 进程两种进程,master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。
例子
结合例子说明一下,我们以 test.com 看下完整的请求流程是怎么样子的:
1、:绑定host:127.0.0.1 test.com
2、配置test.com 的nginx配置
3、 上图的配置需要在nginx文件需要在nginx引入
4、配置php-fpm.conf的监听端口
5、php代码
6、浏览器展示
流程图如下:
共同进步,学习分享
觉得写的还不错的就点个赞,加个关注呗!持续更新 !!! 点关注,不迷路,小杨带你上高速
已经为大家整理好了几百本各类技术电子书和学习资料、最新的面试题,关注公众号【写代码的小杨】回复【资料】。
也欢迎大家一起来讨论学习,共同进步