在PHP作为目前一种使用程度较高的编程语言,PHP在开发WEB开发中,一个请求开始到最后的返回,都经过什么样的流程呢?想要了解这些,我们不可避免需要了解这几个技术:Nginx、FastCGI、PHP-FPM。这些技术和PHP语言本身构建WEB开发的服务,今天我们就来认识认识。
Nginx
作为web开发者来说,Nginx并不陌生,Nginx同Apache一样都是一种WEB服务器。帮我们提供正向、反向代理、HTTP服务器等等功能。额外的扯一下什么是正向反向代理
1、正向代理:它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,它代理的是客户端,如我们常见的翻墙
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进程只有一个,负责监听端口,接收来自WebServer的请求,而worker进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个PHP解释器,是PHP代码真正执行的地方。
例子
结合例子说明一下,我们以test.