本文共 1629 字,大约阅读时间需要 5 分钟。
(1)
LNMP的工作流程:
当LNMP工作的时候,首先是用户通过浏览器输入域名请求Nginx Web服务,如果是请求的是静态的资源,则由Nginx解析返回给用户。
如果是动态的资源,那么久通过Fast CGI接口发送给PHP引擎服务(Fast CGI进程php-fpm)进行解析。
如果这个动态的请求要读取数据库,那么PHP就会继续向后请求MySQL数据库,读取需要的数据。
最终通过Nginx服务把获取的数据返回给用户,这就是LNMP的基本流程。
(2)企业选用MySQL作为数据库的优点:
1.性能卓越,服务稳定,很少出现异常宕机。
2.开放源代码并且没有版权的限制,自主传播,使用成本低。
3.历史悠久,社区及用户非常活跃,遇到问题很快可以获取帮助。
4.软件体积小安装简单,并且易于维护,安装及维护的成本低。
5.支持多种操作系统,提供API接口。
6.品牌效应,使得企业无需考虑就直接使用。
(3)LNMP环境搭建问题:
当安装LNMP一体化环境的时候MySQL数据库要装在Nginx所在的服务器上,
如果MySQL和Nginx不在同一台机器上,那么Nginx服务器上的MySQL数据库软件只要解压移动安装目录中就行。
不需要对MySQL进行初始化配置。
在PHP5.3以上的版本中,Nginx服务器上安装了MySQL软件,只需要在编译PHP的时候指定相关参数即可。
编译参数:--with-mysql=mysqlnd
表示在编译的时候会调用内置的MySQL的库。
(4)什么是FCGI:
FastCGI是一个可伸缩的、高速的在HTTP服务器的动态脚本语言间通信的接口(在Linux下,FastCGI就是socket,这个socket可以是文件socket或IPsocket)。
FastCGI采用C/S架构,它可以将HTTP服务器和脚本服务器分开,同时还可以在脚本解析服务器上启动一个或多个服务器来解析守护进程。
当HTTP服务器遇到动态程序的时候,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一的处理静态的请求。
这会很高的提高整个应用系统的性能。
(5)FastCGI的重要特点:
1.HTTP服务器和动态脚本语言间通信的接口或工具。
2.可以把动态语言解析或HTTP服务器分离开。
3.Nginx、Apache、Lighttpd,以及多数动态语言都支持FastCGI。
4.PHP动态语言方式采用C/S结构,分为客户端(HTTP服务器)和服务器端(动态语言解析服务器)。
5.PHP动态语言服务器端可以启动多个FastCGI的守护进程。
6.HTTP服务器通过FastCGI客户端和动态语言FastCGI服务器端通信。
(6)Nginx FCGI运行原理:
Nginx不支持对外部动态程序的直接调用或者解析。所有的外部程序(包括PHP)必须通过FastCGI接口来调用。
FastCGI接口在Linux下是一个socket,为了调用CGI程序,还需要一个FastCGI的wrapper(可以理解为用户启动另一个程序的程序),这个wrapper绑定在某个固定的socket上。
当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接受到请求,然后派生出一个新的线程,这个线程调用解释器或外部的程序处理脚本来读取返回的数据。
然后wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx,最后Nginx将返回的数据发送给客户端。
FastCGI的主要优点就是把动态的语言和HTTP服务器分离开来,使Nginx专门处理静态的请求,动态的请求直接使用PHP/PHP-FPM服务器专门处理。
转载地址:http://vofga.baihongyu.com/