在linux系统中,LNMP是目前网站主流架构之一,LNMP中L指linux系统平台,N是nginx指网站的前端程序,发布静态页面和调用外部程序解析动态页面,M是mysql指网站的后台数据库,P是PHP指网页编程语言。

LNMP工作原理如下图所示:

图14-1  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再返回给客户端。

与LNMP对应的是LAMP,LAMP是指Linux、Apache、MySQL和PHP的结构体系。LAMP工作原理是浏览器向服务发送http请求,服务器(Apache)接受请求,由于php作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,然后去调用php处理模块进行php脚本的处理。脚本处理完成后,Apache将处理完的信息通过http response的形式转送给浏览器。浏览器再进行解析与渲染然后进行呈现。

最新文章

  1. Bootstrap 表单
  2. Oracle锁的机制
  3. C++ 添加库
  4. 夺命雷公狗---DEDECMS----26dedecms面包屑导航的实现
  5. Asp.Net MVC 模型验证详解-实现客户端、服务端双重验证
  6. 蓝桥杯--- 历届试题 大臣的旅费 (DFS & Vector)
  7. Java 集合类(一)
  8. poj 2446 二分图最大匹配
  9. 模拟等待事件row lock waits
  10. [原创]obj-c编程15[Cocoa实例02]:KVC和KVO的实际运用
  11. android设置eclipse中的自动提示功能
  12. zoj 1134 - Strategic Game
  13. 绝杀600元以下智能手机的夏新小V二代-专栏-速途网
  14. Datatable插件的简单的使用方式 和 学习方式
  15. forEach( ) map( ) for( in ) for ( of )
  16. 【原创】小说:我是一条DQL
  17. 在Ubuntu18.04上使用Anaconda(python3.7)环境中安装tensorflow1.13.1
  18. PairWork-电梯调度程序结对编程【附加题】
  19. while练习题
  20. BeautifulSoup 模块详解

热门文章

  1. 最新 唯品会java校招面经 (含整理过的面试题大全)
  2. 最新 拼多多java校招面经 (含整理过的面试题大全)
  3. kindeditor 在JSP 中上传文件的配置
  4. spring使用FactoryBean给ioc容器加入组件
  5. QEMU编译安装
  6. python 复制
  7. leetCode算法——1TwoSum(两数之和)
  8. 20190806-Python基础 第二章 列表和元组(3)元组&章小结
  9. 关于RESTful API
  10. python经典小程序集锦(一) 实现九九乘法表