首页 > 编程知识 正文

lamp和lnmp内存占用(lamp用法)

时间:2023-05-05 22:24:57 阅读:69905 作者:2617

EC平台lnmp体系结构介绍1. Lnmp介绍2. Lamp介绍3. lamp与lnmp的区别

1. Lnmp介绍

Lnmp的含义

LNMP是通常一起用于运行动态网站和服务器的自由软件名称的首字母缩写。 其中,l可以指Linux,n可以指Nginx,m可以一般指MySQL,MariaDB,p可以一般指PHP,或者Perl或Python。

LNMP表示web服务器体系结构,如Linux系统上的Nginx MySQL PHP。

Nginx是高性能的HTTP和反向代理服务器,也是IMAP/POP3/SMTP代理服务器。

Mysql是一个小的关系数据库管理器。

PHP是嵌入在服务器端运行的HTML文档的脚本语言。

这四个软件都是免费的开源软件,组合在一起,成为免费、高效、可扩展的网站服务系统。

LMP的工作原理

客户端通过http协议发起请求,该请求首先到达lnmp体系结构中的nginx,nginx根据用户的请求进行确定。 此判断由nginx的位置模块完成。

如果nginx确定请求是静态页面,nginx将直接处理并返回客户端;

如果请求是动态页,则nginx将请求传递给fastcgi协议进行分发; fastcgi将请求传递给php-fpm管理进程,并在接收到此进程时调用特定的工作进程wrapper; wrapper线程调用php进行分析。 如果只是简单地解析php代码,则结果会直接返回给客户机。

如果有数据库操作,php将连接到数据库并开始操作。

最后,MySQL-PHP-PHP-fpm-fastcgi-nginx-http-client浏览器将http请求发送到服务器(nginx ),服务器响应web请求并处理一些将php脚本通过接口传输协议(网关协议) PHP-fcgi (fast-CGI )传输到php-FPM (进程管理器),php-FPM不进行处理。 然后,PHP-FPM调用PHP解析器进程,PHP解析器解析PHP脚本信息。 PHP解析器进程可以启动并同时运行多个。 将分析的脚本恢复为PHP-FPM,PHP-FPM以fast-cgi的形式将脚本信息发送到Nginx .服务器,并以http响应的形式发送到浏览器。 在浏览器中分析和渲染,然后进行渲染。

33558 www.Sina.com/: PHP-fpm (FastCGIprocessmanager )是fastcgi管理器,而fast-cgi是PHP的模块。

lnmp的特点

Nginx性能稳定、功能丰富、运维简单、静态文件处理速度快,系统资源消耗极少。

好处

虚拟专用服务器(VPS )资源较少,Nginx配置也相对简单,它利用fast-cgi动态分析PHP脚本。

作为Web服务器: Nginx使用的资源少于Apache,支持更多并发连接,并且效率更高。

作为负载平衡服务器Nginx可以在内部直接支持Rails和PHP,也可以作为HTTP代理服务器对外提供服务。

Nginx安装非常简单,配置文件非常简单,Nginx支持新配置的顺利加载,并且可以在不中断服务的情况下进行软件版本升级。

缺点

php-fpm组件的负载能力有限,在访问量较大的情况下,php-fpm过程容易僵硬,容易发生502个错误

2. Lamp介绍lamp的含义

LAMP是通常一起用于运行动态网站和服务器的自由软件名称的首字母缩写。

lamp是指Linux Apache MySQL PhP体系结构

lamp概述

lamp体系结构的工作流是浏览器发送http请求,而Apache服务器接受请求。 另一方面,PHP是Apache的模块,具有相同的生命周期,两者通过共享内存进行通信,因此PHP也作为Apache的组件模块一起启动。 Apache存储一些静态资源,并调用php模块处理php脚本。 处理php后,Apache使用http response将处理后的数据发送回客户端浏览器进行分析,并渲染整个网页。

3. lamp与lnmp的区别在lnmp中,Nginx本身不对脚本进行任何处理,只是进行传输,然后向fast-cgi管理进程发送请求,fast-cgi管理进程选择并返回cgi子进程的处理结果。 两者相互独立;

在LAMP中,PHP是Apache的一个模块,具有相同的生命周期,两者通过共享内存进行通信,PHP作为Apache的组件模块一起启动

LAMP方法占用大量资源,配置虚拟主机需要同时修改Nginx和Apache配置文件,操作很复杂。

减少了LNM的使用资源,支持很多并发连接,提高了效率。 作为负载平衡服务,nginx可以支持内部,也可以向外部提供服务,安装简单,配置简单

Apache本身处理PHP的能力高于php-fpm,是合适的

合访问量较大的站点使用
注意:Apache编译的PHP不能用nginx用户。

为什么在大多数情况下 nginx 都比 apache 响应要迅速?

主要是因为 nginx高并发的功能优越于 apache;

因为他们所采用的 I/O复用方式不同,Nginx使用了epoll 的I/O模型,而Apache使用的是传统的select模型;select 方式仅仅知道有I/O事件发生了,却不知道是哪几个流,所以只能无差别轮询所有流,找出能读出数据,或者写入数据的流,然后进行操作;而 epoll 会主动通知哪个流发生了怎样的I/O事件,所以 epoll 实际上是事件驱动的,对这些流的操作就比较高效;目前 Linux下能够承受高并发访问的Squid、Memcached 缓存都采用的是epoll网络I/O模型,该模型可以处理大量的连接的读写,Apache所采用的select网络I/O模型较为低效。

cgi fastcgi php-fpm

一个完整的动态PHP Web访问流程: 当Web Server收到 index.php 这个请求后,会启动对应的 CGI 程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境,然后处理请求,再以规定CGI规定的格式返回处理后的结果,退出进程,Web server再把结果返回给浏览器。

基础概念

CGI:是 Web Server 与 Web Application 之间数据交换的一种协议。
FastCGI:同 CGI,是一种通信协议,但比 CGI 在效率上做了一些优化。同样,SCGI 协议与 FastCGI 类似。
PHP-CGI:是 PHP (Web Application)对 Web Server 提供的 CGI 协议的接口程序。
PHP-FPM:是 PHP(Web Application)对 Web Server 提供的 FastCGI 协议的接口程序,额外还提供了相对智能一些任务管理。CGI工作原理 web服务器收到用户请求,就会把请求提交给cgi程序(如php-cgi),cgi程序根据请求提交的参数作应处理(解析php),然后输出标准的html语句,返回给web服服务器,WEB服务器再返回给客户端,这就是普通cgi的工作原理CGI缺点: 每一次web请求都会有启动和退出过程

FAST-CGI工作原理

Web Server启动时载入FastCGI进程管理器(Apache Module或IIS ISAPI等)
FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可建多个php-cgi),并等待来自Web Server的连接。
当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
FastCGI子进程完成处理后,将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待,并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。fast_cgi与cgi区别CGI,每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展,并重新初始化全部数据结构。FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。

FastCGI是多进程,所以比CGI多线程消耗更多的服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。

要了解php-fpm,需要先了解php-cgi,PHP-CGI就是PHP实现的自带的FastCGI管理器。而PHP-CGI只是个CGI程序,他自己本身只能解析请求,返回结果,不会进程管理。所以就出现了一些能够调度 php-cgi 进程的程序,比如说由lighthttpd分离出来的spawn-fcgi。同样,PHP-FPM也是用于调度管理PHP解析器php-cgi的管理程序,PHP-FPM可以通过生成新的子进程可以实现php.ini修改后的平滑重启。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。