LAMP架构简述_IT架构

LAMP架构简述_IT架构阅读目录图片架构详解               LAMP架构以及通信过程 LNMP架构优缺点 Nginx/APACHE+tomcat+MySQL                  图片架构详解              LAMP/LNMP:是有Linux系统,Apache网络服务器或者Nginx服务器,MySQL数据库。php。LAMP/LNMP具有…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

阅读目录

                  LAMP架构简述_IT架构

 

图片架构详解              

 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,只要指明要连接的服务器即可。

 

            LAMP架构简述_IT架构

 

 

 

 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181047.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月17日 上午11:46
下一篇 2022年10月17日 上午11:46


相关推荐

  • latex希腊字母对照表_24个希腊字母怎么读

    latex希腊字母对照表_24个希腊字母怎么读LATEXL^AT_EXLATE​X希腊字母对照表显示输入显示输入α\alphaα\alphaβ\betaβ\betaγ\gammaγ\gammaδ\deltaδ\deltaε\varepsilonε\varepsilonη\etaη\etaθ\thetaθ\thetaι\iotaι\iotaκ\kappaκ\kappaλ\lambdaλ\lambdaμ\muμ\muν\nuν\nuξ\xiξ\xiooo

    2022年10月13日
    3
  • EasyPlayer支持YUV数据导出功能

    EasyPlayer支持YUV数据导出功能我们可能会遇到这样的功能,播放一个视频的同时,再把这个视频推送出去,或者对视频数据进行智能分析等处理.这样我们就迫切需要得到视频的原始数据.基于这个需求,EasyPlayer增加了获取视频YUV数据的功能.它的原理是这样的:CreatedwithRaphaël2.1.2EasyPlayerClientEasyPlayerClientDecoderDecoderYUVYUV读取媒体…

    2022年6月25日
    28
  • RSTP快速生成树协议

    RSTP快速生成树协议RSTP 简介 RSTP 概述 快速生成树协议 RSTP RapidSpannin 在 STP 基础上实现了快速收敛 并增加了边缘端口的概念及保护功能 RSTP 的端口角色 RSTP 在 STP 基础上新增加了 2 种端口角色 Backup 端口和边缘端口 通过端口角色的增补 简化了生成树协议的理解及部署 Backup 端口 由于学习到自己发送的配置 BPDU 报文

    2026年3月17日
    2
  • CRC校验码的计算

    CRC校验码的计算循环冗余检验的原理 在发送端 先把数据划分为组 假定每组 k 个比特 假定一个待传送的数据 M k 位 CRC 运算就是在数据 M 的后面添加供差错检测用的 n 位冗余码 然后构成一个帧发送出去 一共发送 k 1 位 在所要发送的数据后面增加 n 位的冗余码 虽然增大了数据传输的开销 但却可以进行差错检测 当传输可能出现差错时 付出这种代价往往是很值得的 下面通过一个具体的例子来进行分析计算 例 要发送的数据为

    2026年3月19日
    2
  • linux移动文件到另一个文件夹「建议收藏」

    linux移动文件到另一个文件夹「建议收藏」复制指定目录下的全部文件到另一个目录中1.文件及目录的复制是经常要用到的。linux下进行复制的命令为cp。假设复制源目录为dir1,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了如果dir2目录不存在,则可以直接使用cp-rdir1dir2即可。如果dir2目录已存在,则需要使用cp-rdir1/.dir2例://没有publicData…

    2022年8月23日
    9
  • 让学术翻译更专业:豆包大模型在Zotero PDF Translate中的集成指南

    让学术翻译更专业:豆包大模型在Zotero PDF Translate中的集成指南

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号