一、lnmp集群——基础知识篇
1.1 什么是lnmp?
LNMP是目前网站主流架构之一,LNMP中L
指linux系统平台
,N
是nginx指网站的前端程序
,发布静态页面和调用外部程序解析动态页面,M
是mysql指网站的后台数据库
,P
是PHP指网页编程语言
,是作为一个独立服务存在的,这个服务叫做php-fpm
,Nginx直接处理静态请求,动态请求会转发给php-fpm
。
与LNMP对应的是LAMP,LAMP是指Linux、Apache、MySQL和PHP的结构体系。
1.2 lnmp工作原理
首先,浏览器发送http request请求到服务器(Nginx)
,服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口转输协议(网关协议)PHP-FCGI(fast-cgi)
转输给PHP-FPM(进程管理程序)
,PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPMM再通过fast-cgi的形式将脚本信息转送给Nginx,服务器再通过Http response的形式转送给浏览器。浏览器再进行解析与渲染然后进行呈现。
通俗的说, 客户端的所有的页面请求先到达lnmp结构中的nginx,nginx根据自己的判断哪些是静态页面,哪些是动态页面,如果是静态页面直接由nginx自己处理就可以返回结果给客户端了,如果*.php动态页面nginx需要调用php中间件服务器处理,在处理PHP页面的过程中可能需要调用mysql数据库的数据完成页面编译,编译完成后的页面返回给nginx,nginx再返回给客户端。
-
LAMP工作原理:
浏览器向服务发送http请求,服务器(Apache)接受请求,由于php作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,