nginx 是一个代理服务器,其做用是把客户端请求转发给服务,而后直接输出服务的响应内容。
php 做为很是通用的web 服务端脚本语言,具备很是高性能的处理速度。
如今最流行的web服务器搭建环境 采用的是 linux 操做系统 ,配置一台nginx 代理服务器,而后代理服务器把客户端请求 转发到 php 。php 程序运行后把结果返回给nginx 输出给客户端。
当 然,nginx 代理服务器 要和php 配合工做,中间须要一个 php-fpm ,php-fpm是 一个php 的 fastcgi进程管理器。fastCGI 能高效管理php-CGI的内存和进程网问题,而php-CGI是 php实现 CGI全部功能的一个模块。实现了CGI 功能的程序,都能提供 web服务。因此,php能做为web服务端语言。
php- fpm既然 是一个 进程管理器, 负责php的多线程工做。 自己php 语言是单线程,或者是没有线程这一说法。 php-fpm能够 同时管理多个php运行实例,这样就能有效提升了服务器的处理性能,处理大访问量的时候,就能够同时发起多个php实例来处理客户端的请求。
php-fpm是负责管理线程的,因此要进行性能优化的时候,主要从它同时开启多少个线程等参数有关。
nginx 是负责转发请求的,因此要从 缓存方面进行优化。当nginx 从php-CGI获取到 数据后,能够进行缓存,让进行一样请求的数据,直接从缓存读取,而不用再去请求 php-CGI 从新执行程序产生数据,这样就能够有效的减小cpu的处理量,提升性能。php