lnmp架构

文章介绍了PHP的源码编译及与nginx的整合,强调了nginx作为高并发服务器的角色。LNMP架构的实现过程包括nginx通过fastcgi处理PHP请求,以及通过memcache提升缓存效率。此外,文章还讨论了数据库拆分以减轻服务器压力和扩展多台web服务器组成集群以提高用户访问速度。
摘要由CSDN通过智能技术生成

一、PHP源码编译、PHP和nginx的整合

源码编译

PHP是动态编译,因此如果在使用过程中需要任何增添,都可以再次编译,而nginx是静态编译;
编译完成之后,进行相关配置的修改,就可以启动PHP,我们可以看到9000端口代表PHP开启
在这里插入图片描述

PHP和nginx的整合

由于应用服务器的并发能力较差,所以我们会将PHP和nginx整合起来进行使用
当我们访问nginx的时候,nginx会将以.php结尾的请求通过fastcgi_pass并且由PHP-fpm来处理,完成后返回nginx再返回客户端;nginx是高并发高吞吐的,但是这里的处理并不是由nginx完成,所以有可能造成客户端和nginx之间的阻塞

在这里插入图片描述
我们还会添加memcahce模块,memcache是一套分布式高速缓存系统,许多网站用以提升网站的访问速度。
当我们做一个测试,做数据的上传与获取,我们会发现memcache命中率非常高,这说明了,我们的数据获取是从memcache中获取,速度非常快
在这里插入图片描述
上边的方式有可能会造成客户端和nginx之间的阻塞,所以我们可以采用nginx高速缓存的方式;这个方式是将nginx与memcache之间连接在了一起,当客户端向nginx发起请求,nginx先向memache中看一下是不是有缓存,如果有,直接返回,速度很快;如果没有就和上边一样通过fast-cgi由PHP处理并且将其记录在memcache中,方便下次访问直接快速获取数据;

二、lnmp架构整合

1、什么是lnmp架构

  • LNMP是一套技术的组合,Linux、nginx、mysql、PHP
  • nginx仅支持解析HTML文件,不支持PHP、python、Java等脚本文件

2、lnmp实现过程

当用户发起一个以php结尾的请求时,对于nginx而言,处理不了这样的请求,那么要怎样做?

  • 当用户发起http请求时,请求先被nginx接收
  • nginx通过提前定义好的location规则进行匹配
  • nginx将匹配到的动态内容通过fastcgi协议传给后端的php应用服务处理

3、lnmp详细实现过程

  • 客户端通过http协议发起请求,请求先到达nginx
  • nginx通过用户的请求进行location规则进行匹配
  • location如果匹配到的请求是静态,则由nginx读取本地并直接返回
  • 如果匹配到的请求是动态,由nginx将请求转发给fastcgi协议
  • fastcgi收到请求后交给php-fpm管理进程
  • php-fpm管理进程收到后会调用具体的worker进程,worker进程会调用php解析器解析代码,php解析后返回
  • 如果有查询数据库操作,由php连接数据库发起查询操作
    流程大概为:客户端->http->nginx->fastcgi->php-fpm->php->tcp->mysql

三、lnmp架构多台主机部署(拆分数据库)

由于单台服务器上运行lnmp架构会导致网站访问缓慢,当系统内存吃满时,很容易导致系统oom,从而杀掉数据库;所以我们需要将web和数据库分开部署。
拆分数据库能够缓解web网站的压力、增强数据库读写性能、提高用户访问速度;

四、扩展多台相同的web服务器组成web集群

单台服务器能承受的访问量是有限的,所以配置多台web服务器能够提升用户访问速率
扩展多台节点可以解决:
1、单台web节点故障,导致业务无法正常进行
2、多台web节点能保证业务持续稳定,扩展性高
3、提升用户访问速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值