LAMP架构简述

article/2025/9/22 14:25:43

阅读目录

  • 图片架构详解              
  •  LAMP架构以及通信过程
  •  LNMP架构优缺点
  • Nginx/APACHE + tomcat + MySQL 

                  

 

图片架构详解              

 LAMP/LNMP:是有Linux系统,Apache网络服务器或者Nginx服务器,MySQL数据库。php。  LAMP/LNMP具有通用,跨平台,高性能的又是。

LNMT/LAMt :整合 Apache Http Server 和 Tomcat 可以提升对静态文件的处理性能、利用 Web 服务器来做负载均衡以及容错、无缝的升级应用程序。

优点:

1. 提升对静态文件的处理性能

2. 利用 Web 服务器来做负载均衡以及容错

3. 无缝的升级应用程序

 

 LAMP架构以及通信过程

LAMP的架构:

  LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的。 所以web服务器通过发起请求的后缀来判断,如果是静态的资源就由web服务器自行处理,然后将资源发给客户端。如果是动态这时web服务器会通过CGI(Common Gateway interface)协议发起给php。 这里但是如果php是以模块形式与Web服务器联系。那么他们是通过内部共享内存的方式。如果是php单独的放置与一台服务器,那么他们是通过sockets套接字监听的方式通信(这又是一个C/S架构)。这时php会相应的执行一段程序,如果在执行程序时,需要用到数据。那么php就会通过mysql协议发送给mysql服务器(也可以看作是一个C/S架构)。由mysql服务器处理,将数据供给php程序。

LAMP流程:

1. 用户发送http请求到达httpd服务器

2. httpd解析url获取需要的资源的路径,通过内核空间读取硬盘资源,如是静态资源,则构建响应报文,发回给用户

3. 如果是动态资源,将资源地址发给php解析器,解析php程序文件,解析完毕将内容发回给httpd,httpd构建响应报文,发回给用户

4. 如果涉及到数据库操作,则利用php-mysql驱动,获取数据库数据,返回给PHP解析器。

 

Apache,MySQL,PHP 之间的联动工作:

1、apache + php结合的方式大概几种:

第一种:把php编译时直接编译成apache的模块、module模块化的方式进行工作(apahce默认的这种方式)。

第二种:CGI、通用网关接口、apache基于CGI跟hph通信

第三种:fastcgi、他也是一种协议、在这种模块下他们两个是这样结合的:

  本来php是做为一个模块或都是php解析器运行的,不是监听在某个套接字上接收别人的请求的,而是让别人调用为一个进程使用的,可能是做为别人的子进程在运行,但是工作在fastcgi这种模块下的hph自行启用为一个服务进程,

   他监听在某个套接字上,随时可以接受来自客户端的请求的,他也是有一个主进程的,为了可以响应多个用户的请求,他会启用多个子进程,这些子进程我们也可以称为工作进程,

        他也是有空闲进程的,一但有客户请求他马上使用空闲的进程响应客户端的请求,将结果返回给前端的调用者,在php5.3.3版本之前他是没有这个能力了,只能工作在模块和CGI的方式下,而在5.3.3之后这个模块直接被收进php模块中,这种模块就叫php-fpm。

        所以在以后编译php时,要想跟apache结合,就要编译成php-fpm,这是基于fastcgi工作的模式,并启动这服务进程,也就意味着他是通过套接字跟前端的调用者通信,既然基于套按字通信了,那么前端的web服务器和后面的php服务器完全可以工作在不同的主机上,实现了所谓的分层机制。

        apache不会跟数据库打交道,他是个静态web服务器,跟数据库打交道的是应用程序,作为应用程序的源驱动能够基于某个API跟服务器之间建立会话,而后他会通过我们的mysql语句发送给数据库,数据库再将结果返回给应用程序,不是php进程,而是php进程中所执行的代码。

 

2、php + mysql的通信:

PHP跟mysql怎么整合起来呢,php又怎么被httpd所调用呢

        首先httpd并不具备解析代码的能力,他要依赖于php的解析器,接着php本身不依赖于mysql,他只是一个解析器,能执行代码就OK了,那他什么时候用到mysql呢,如果要在mysql中存数据时才用到mysql,只是当php中有运行mysql语句时才用到mysql。

        php语言要想联系mysql,通常用到php的驱动,rpm包的叫php_mysql,php跟mysql没有一点关系,只有程序员在php中编写mysql语句时才连接mysql来执行sql语句的。

  基于php-mysql去连接mysql只使用一个函数mysql_connect();而mysql_connect()正是php-mysql提供的一个API,只要指明要连接的服务器即可。

 

            

 

 

 

 LNMP架构优缺点

LNMP的大致原理跟LAMP相差不多,但是 ,据说,LNMP不支持CGI模式。

LNMP是Linux+Nginx+Mysql+PHP的组合方式,其特点是利用Nginx的快速与轻量级,替代以前的LAMP(Linux+Apache+Mysql+PHP)的方式。由于安装方便,并且安装脚本也随时更新。

LNMP方式的优点:占用VPS资源较少,Nginx配置起来也比较简单,利用fast-cgi的方式动态解析PHP脚本。

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

 

 综上所述:
基于 LAMP 架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是 Web 网络应用和环境的优秀组合。若是服务器配置比较低的个人网站,当然首选 LNMP 架构。
当然,在大流量的时候。把Apache和Nginx结合起来使用,也不失为一个不错选择,如下:
LNAMP是Linux+Nginx+Apache+Mysql+PHP的组合方式,其特点是利用Nginx来作为静态脚本的解析,而利用 Nginx的转发特性,将动态脚本的解析转交给Apache来处理,这样,能充分利用两种Web服务器的特点,对于访问量需求较大的站点来说,是一个很不错的选择。

LNAMP方式的优点:由于Apache本身处理PHP的能力比起php-fpm要强,所以不容易出现类似502 bad gateway的错误。适合访问量较大的站点使用。

LNAMP方式的缺点:相比LNMP方式会多占用一些资源,另外,配置虚拟主机需要同时修改Nginx和Apache的配置文件,要稍微麻烦一些。

 

 

Nginx/APACHE + tomcat + MySQL 

 Apacje/Nginx 和tomcat 整合在一起最常用的方法就是JK:

JK怎么连接tomcat?

  JK 是通过 AJP 协议与 Tomcat 服务器进行通讯的,Tomcat 默认的 AJP Connector 的端口是 8009。

  Apacje/Nginx 和tomcat 最常用的方式用于:负载均衡以及方向代理。

 

负载均衡与反向代理通俗的解释:

A为客户端,B为nginx or apache,C,D为应用服务器

负载均衡: 假设A没有钱,那么A向B借钱,B本身是没有钱的,B会向C,D借钱,然后在转借给A,此时A是不知道C,D的存在的。

反向代理:假设A没有钱,B也没有钱,B就说,那么我推荐两个人给你,你自己去向他们借钱吧,然后,B推荐了C,D,A此时认识到了C和D,然后,C,D说,可以借给A,但是要通过B做担保,所以,C,D通过B的担保借钱给了A。

 

转载地址:https://www.cnblogs.com/keep-going2099/articles/7048508.html


http://chatgpt.dhexx.cn/article/3U8yGv82.shtml

相关文章

LAMP架构

目录 一、LAMP简介与概述1.LAMP平台概述2.构建LAMP平台顺序3.编译安装的优点4.各组件的主要作用 二.安装1.-安装Apache2.安装MYSQL3.安装PHP4.安装论坛5.论坛测试 一、LAMP简介与概述 1.LAMP平台概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一…

LAMP架构一(介绍)

一、LAMP架构介绍 现如今打开浏览器,搜索LAMP关键词,出现大量的关于LAMP的介绍,包括LAMP的一键脚本、LAMP的yum安装、LAMP的编译安装,但是对于一个非开发或非专业人员有可能根据网络参考资源实现LAMP的搭建并成功运行各种服务&…

Smokeping的主从模式部署

Smokeping 支持 Standalone(单机)模式和 Master/Slave(主从)模式。 之前老苏折腾过单机模式,这次应网友 Roxmie 的要求,研究了一下主从模式的部署 文章传送门: 网络性能监控工具Smokeping 因为…

Centos7上smokeping安装

Centos7上Smokeping安装 一、安装软件 1、添加镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2、安装Apache yum -y install httpd httpd-devel gcc make curl wget3、安装rrdtool a.安装依赖的库 yum -y install libx…

centos7下源码安装Smokeping,主从部署

一、环境部署(准备两台Centos虚拟机) 1.关闭防火墙和SElinux #systemctl stop firewalld.service #systemctl disable firewalld.service #sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #grep SELINUXdisabled /etc/selinux/config #setenforce 02.安装E…

网络性能监测工具smokeping

smokeping简介: smokeping是rrdtool的作者Tobi Oetiker的作品,所以它在图形显示方面有很大优势,也是一个很有特点的opensource工具:多种探测方式,包括fping、echoping、dig、curl等;可以在多个节点收集同一…

docker快速搭建smokeping

1、部署docker环境 curl -fsSL get.docker.com -o get-docker.sh CHANNELstable sh get-docker.sh --mirror Aliyun 2、启动docker systemctl start docker 3、拉取镜像 docker pull linuxserver/smokeping 4、创建目录 mkdir -p /data/smokeping/config 5、进入目录 cd /data/…

Smokeping 网络性能监控 安装使用说明

目录 简介 -smokeping介绍-组成部分-Web服务器软件-Smokeping主服务-探针-rrdtool安装配置smokeping 2.1--环境依赖包安装 2.2--RRDtool 1.2.x或更高版本安装 2.3--FPing安装 2.4--EchoPing安装 2.5--Webserver安装 2.6--Perl 5.10.1 或更高版本安装 2.7--开始安装smokeping 三…

smokeping图表各值意义解释

1、rtt (Round-TripTime) 这个值就是数据包在源和监控点一个来回所需要用的时间,是判断网络运行状况的一个重要的参数。在网络中实时、准确测量大量的TCP设备和系统rtt参数也是网络管理的重要环节之一。smokeping就是向目标设备发送数据包,进行记录、展示…

ubuntu12 部署smokeping监控

简介: smokeping是对IDC网络质量,稳定性等最好的检测工具,包括常规的 ping,dig,echoping,curl等,可以监视www服务器性能,监视dns查询性能,监视ssh性能等。底层是 rrdtoo…

【监控系统】Smokeping网络监控

文章目录 1. smokeping简介2. 部署smokeping2.1. 环境准备2.2. 安装rrdtool与依赖库2.3. 下载与安装smokeping2.4. 安装依赖的Perl模块 3. 配置smokeping3.1. 创建相关目录3.2. 创建日志文件3.3. 目录文件授权3.4. 修改配置文件3.5. 修改apache的配置3.6. 添加测试数据 4. 启动…

Smokeping主从搭建

Smokeping主从的作用,简单来讲就是增加多个smokeping主机对目标主机的监控。 1、环境部署,准备好两台已经安装好smokeping的主机,确保2台主机网络能够互访互通,且smokeping能够正常运行。 2、主smokeping配置 cd /usr/local/smo…

smokeping-2.6.9搭建

本次smokeping服务搭建是基于centos7系统平台且是使用apache1,开始搭建之前需要关闭centos的SElinux服务和防火墙服务,不然搭建过程中,部分服务权限会受影响而搭建不成功。 1、关闭selinux服务 临时关闭selinux setenforce 0 //该命令临…

Nginx+SmokePing 实践

NginxSmokePing安装配置 SmokePing是一款完全免费的可以用来监控IDC网络质量的工具,并且它有一个基于RRDTool绘图的前端展示界面,用户可以直观的通过浏览器查看各类监控信息。 SmokePing 安装epel源: yum -y install epel-release 安装绘…

安装smokeping

下载安装包 wget https://oss.oetiker.ch/smokeping/pub/smokeping-2.7.3.tar.gz编译,安装 tar xf smokeping-2.7.3.tar.gz cd smokeping-2.7.3 ./configure --prefix/usr/local/smokeping /usr/bin/gmake install编译的时候,可能会报错,需…

smokeping图表解释

以下图为例: 1、rtt (Round-TripTime) 这个值就是数据包在源和监控点一个来回所需要用的时间,是判断网络运行状况的一个重要的参数。在网络中实时、准确测量大量的TCP设备和系统rtt参数也是网络管理的重要环节之一。smokeping就是向目标设备发送数据包&a…

稳定性检测工具smokeping安装配置和使用方法

稳定性检测工具smokeping安装配置和使用方法 smokeping是对IDC网络质量,稳定性等最好的检测工具,包括常规的 ping,dig,echoping,curl等,可以监视www服务器性能,监视dns查询性能,监视…

smokeping网络监控

smokeping网络监控 一、smokeping介绍 我们在选择机房的时候,如何知道这个机房的网络情况,这个时候就要用到网络监控软件:smokeping   本文主要介绍如何使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的…

网络性能监控工具Smokeping

什么是 Smokeping ? SmokePing 是一款监控网络状态和稳定性的开源软件(它是 RRDTool 的作者开发的),通过它可以监控如延时,丢包率,是否 BGP 多线等网络状况;smokeping 会向目标设备和系统发送各…

网络监控smokeping搭建配置(一)

网络监控smokeping搭建配置(一) 网络监控smokeping邮件告警(二) 注:本次smokeping搭建采用centos7编译安装 一、安装步骤 1、添加yum镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo2、安装Apache yum -y ins…