什么是lnmp架构

lnmp=linux+nginx+php+mysql,用来运行动态网站或者服务器

lnmp架构的工作原理

1.user通过http发起请求到nginx,nginx根据用户请求判断是否由location

2.如果user请求为静态页面,nginx会直接处理

3.如果user请求为动态页面,nginx会将该请求交给fastcgi协议下发

4.fastcgi将请求交给php-fpm管理进程,php-fpm管理进程接受到之后会调用具体的工作进程wrapper

5.wrapper线程调用php解析器进程,php解析器解析php脚本信息。php解析器进程可以启动多个,进行并发执行。如果只是解析php代码,那么会直接返还给数据库。

6.如果有查询数据库的操作,则有php链接数据库(用户,密码,ip)然后发起查询操作

数据流向        mysql -> php -> php -> php-fpm -> fastcgi -> nginx -> http -> user

lnmp的优点(主要为nginx优点)

1.作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。

2.作为负载均衡服务器:Nginx 既可以在内部直接支持Rails和PHP,也可以支持作为 HTTP代理服务器对外进行服务。Nginx 用C编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好的多。

3.作为邮件代理服务器:Nginx同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。

4.Nginx 安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,平滑升级以及版本的回退。

LNMP方式的缺点:

php-fpm组件的负载能力有限,在访问量巨大的时候,php-fpm进程容易僵死,容易发生502 bad gateway错误。

LAMP和LNMP的区别

1.在LNMP中,Nginx本身对脚本不做任何的处理,而是去调用一个PHP-FPM的进程,二者是相互独立的。在LAMP中,PHP是Apache的一个模块,具有相同的生命周期。

2.相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率