LAMP架构详解

news2024/9/27 7:24:15

目录

一、Apache详解

1.1 简介

1.2 Apache功能

1.3 apache特点

1.4 三种工作模式

二、LAMP简介

2.1 LAMP平台概述

2.2 构建LAMP平台顺序

2.3 编译安装的优点

2.4 各组件的主要作用

三、wget命令

四、curl命令

五、压力测试工具


一、Apache详解

1.1 简介

  • Apache 是一款免费开源的 Web 服务器软件,用来处理 HTTP 请求和相应的网页请求
  • Apache 由 Apache 软件基金会开发和维护。
  • 在互联网上,Apache 是最广泛使用的 Web 服务器软件之一。它支持 多种操作系统,并且可以与多种编程语言进行集成,例如 PHP、Python、Perl 等。
  • 它不仅可以用于静态网站,还可以支持动态内容的生成,比如使用 CGI 脚本来动态生成网页内容。
  • "Apache"并不是"A Patchy Server"的缩写。它实际上来自于它最初的名称:"A patchy server",但是这 个名称仅仅是为了表示它是一个由许多补丁和代码组合而成的服务器。后来,这个名称被简化 为"Apache",它被正式采用为Apache软件基金会的名称。"Apache"不再代表"A patchy server"。
  • apache官网: www.apache.org
  • 软件基金会 ASF:apache software foundation   FSF:Free Software Foundation

1.2 Apache功能

  • 提供http协议服务 web
  • 多个虚拟主机:IP、Port、FQDN 用一台 物理服务器搭建多个网站 百度 jd 淘宝
  • CGI:Common Gateway Interface,通用网关接口,支持动态程序
  • 反向代理: 代理的是 服务端                  正向代理: 代理的是客户端
  • 负载均衡
  • 路径别名
  • 丰富的用户认证机制:basic,digest
  • 支持第三方模块

1.3 apache特点

Apache 是一款开源 Web 服务器软件,其主要特点包括:

  • 跨平台性:Apache 可以运行于 Linux、Windows、Mac OS 等多种操作系统环境中
  • 可扩展性:Apache 支持插件式架构,能够方便地扩展新的功能模块
  • 安全性:Apache 通过 access control、SSL/TLS 加密等多种手段保障服务器和数据的安全
  • 稳定性:Apache 拥有强大的稳定性和健壮性,在高压力下表现良好
  • 易用性:Apache 提供了简单易用的配置文件,允许管理员以文本方式编辑
  • 速度快:Apache 优化了请求和响应处理机制,能够提高 Web 服务器的性能

1.4 三种工作模式

Worker模式:工作线程(Worker)模式适用于资源利用率高的场景

Apache在启动时会创建一组预定义数量的线程池。 每个线程都可以处理多个请求,线程之间共享服务器的内存和资源。 当一个请求到达服务器时,一个空闲的线程将被选择来处理该请求。 线程可能会处理多个请求,通过线程池重用来更高效地处理请求。 这种模式下需要注意线程安全的问题,以确保多个线程间的数据访问不会导致冲突。

Event模式:事件驱动(Event MPM)模式适用于高并发场景

在事件驱动模式下,Apache使用I/O多路复用(如epoll或kqueue)来监听多个连接。 当一个连接有数据到达时,Apache将发出事件通知,表示该连接有可读数据。 Apache将事件分发给一个空闲的工作线程来处理请求。 工作线程处理请求的过程通常是非阻塞的,通过事件驱动方式读取数据和发送响应。 这种模式下可以处理大量的并发请求,因为它不需要为每个请求创建一个新的进程或线程。

Pre-Fork模式:预产生(Pre-Fork)模式适用于稳定性要求高的场景

Apache在启动时会创建一组预定义数量的子进程(称为工作进程)。 每个工作进程都是独立的,有自己的内存空间和资源。 当一个请求到达服务器时,主进程选择一个空闲的工作进程来接受该请求。 选中的工作进程处理该请求,生成响应并将其发送回客户端。 这种模式下每个工作进程只能处理一个请求,处理完请求后会继续等待下一个请求。

二、LAMP简介

2.1 LAMP平台概述

  • LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
  • LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或 perl,Python)网页编程语言

2.2 构建LAMP平台顺序

  • 在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP
  • 其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服 务器和数据库系统以协同工作

2.3 编译安装的优点

  • 具有较大的自由度,功能可定制
  • 可及时获得最新的软件版本
  • 普遍适用于大多数Linux版本,便于一直使用

2.4 各组件的主要作用

  • (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提 供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台)
  •  (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器 直接面向用户提供网站访问,发送网页,图片等文件内容
  • (后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系 统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息
  • (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责 沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一 种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发

三、wget命令

格式:

wget     [OPTION]    [URL]

常用选项:

  • -q 静默模式
  • -c 断点续传
  • -P /path 保存在指定目录
  • -O filename 保存为指定文件名,filename 为 - 时,发送至标准输出
  • --limit-rate= 指定传输速率,单位K,M等

示例:

wget --limit-rate 1M -P /data https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso

四、curl命令

简介:

  • curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议
  • curl支持HTTPS认证,并且支持HTTP的POST、PUT等方法, FTP上 传, kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证, 下载文件断点续传,上载 文件断点续传, http代理服务器管道( proxy tunneling),还支持IPv6,socks5代理服务器,通过http 代理服务器上传文件到FTP服务器等,功能十分强大

格式:

curl 【】 【】

模拟 一些 操作

选项:

-A:设置用户代理发送给服务器

-e:来源网址

--cacert:CA证书 (SSL)

-k:允许忽略证书进行 SSL 连接

--compressed:要求返回是压缩的格式

-H: "key:value” 自定义首部字段传递给服务器

-i:显示页面内容,包括报文首部信息

-I:只显示响应报文首部信息

-D:将url的header信息存放在指定文件中

--basic:使用HTTP基本认证

-u:设置服务器的用户和密码

-L:如果有3xx响应码,重新发请求到新位置

-O:使用URL中默认的文件名保存文件到本地

-o:将网络文件保存为指定的文件中

--limit-rate:设置传输速度

-0:数字0,使用HTTP 1.0

-v:更详细

-C:选项可对文件使用断点续传功能

-c:将url中cookie存放在指定文件中

-x:指定代理服务器地址

-X:向服务器发送指定请求方法

-U:代理服务器用户和密码

-T:选项可将指定的本地文件上传到FTP服务器上

--data:方式指定使用POST方式传递数据

-s --silent    Silent mode

-b name=data:从服务器响应set-cookie得到值,返回给服务器
-w:显示相应的指定的报文信息,如:%{http_code},%{remote_ip}等

-m:允许最大传输时间

示例:

注:

出现如下报错:

curl: (6) Could not resolve host: www.163.com; 未知的错误

解决方法:


[root@localhost ~]# vim /etc/resolv.conf
 
// 原先的DNS
# Generated by NetworkManager
nameserver 8.8.8.8
 
// 修改后的DNS
# Generated by NetworkManager
nameserver 114.114.114.114
nameserver 8.8.8.8

curl -s -I -m10 -o /dev/null -w %{http_code} http://www.baidu.com/
提取状态码
curl -s -I -m10 -o /dev/null -w %{remote_ip} http://www.baidu.com/
#服务器
curl -s -I -m10 -o /dev/null -w %{local_ip} http://www.baidu.com/
#本机地址
curl -s -I -m10 -o /dev/null -w %{local_port} http://www.baidu.com/
#本地端口 随机的
curl -s -I -m10 -o /dev/null -w %{remote_port} http://www.baidu.com/
#80

五、压力测试工具

httpd的压力测试工具:

  • ab,webbench,http_load,seige
  • Jmeter 开源
  • Loadrunner商业,有相关认证
  • tcpcopy:网易,复制生产环境中的真实请求,并将之保存

注:如没有ab命令,则用yum install -y httpd-tools 下载

命令格式:

ab 【】 【】

选项:

-n:总请求数

-c:模拟的并发数

-k:以持久连接模式测试

示例:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1988844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2,v-for中动态渲染本地的图片

一、描述 如果是正常在img标签的src上使用本地的url地址,是可以正常被渲染的,但是我们通过for的形式,动态渲染的话,就会通过网络请求的方式进行渲染,这个形式反而渲染不出来。 二、效果 这个效果,毋庸置…

LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤

一、环境准备 1.准备三台rhel9服务器 服务器名称 主机名 ip地址备注LVS调度服务器lvs.timinglee.org eth0:172.25.254.100(外网) eth1:192.168.0.100(内网) 关闭selinux和防火墙webserver2网站服务器webserver1.timinglee.orgeth0:192.168.…

为什么高校开设微专业,建议搭建动作捕捉与数字人开发实训室?

随着近年来虚拟现实技术产业与元宇宙产业不断发展,动作捕捉技术成为元宇宙、VR/AR、影视动画、游戏、艺术创作、虚拟偶像等行业相关不可或缺的技术之一。各大院校为了探索新的教学模式,纷纷积极开设“微专业”,相比传统的虚拟仿真实训室来说&…

Linux进程调度与切换

目录 前言 Linux 2.6内核O(1)调度器 调度过程 调度算法 Linux 进程切换 前言 在Linux 2.6版本的内核中,进程调度器引入了O(1)调度器,这个调度器通过优先级队列、活跃队列和过期队列的机制来管理进程调度,虽然在现在已被更好的CFS调度器取代,但对于我…

中仕公考:2024年空军专业技能类文职人员公开招考公告

2024年空军专业技能类文职人员公开招考公告,有关事项公告如下: 一、招考岗位 主要有保管员、司机、炊事员、文印员、汽车修理工兼司机等专业技能三级以下岗位。 二、招考对象 符合岗位资格条件的社会人员(含高校应届毕业生、退役军人)。 根据军队有…

理解栈(Stack)及其在 C++ 中的应用【栈、数据结构】

在这篇博客中,我们将详细介绍栈(Stack)这一重要的数据结构,包括其基本概念、常用操作、C 中的实现,以及一些实际应用。 什么是栈? 栈是一种数据结构,它遵循“后进先出”(LIFO - La…

上海AI Lab 搭台,36个大模型一起角逐长上下文建模能力

现在的大模型论文简直像是在比长度,动不动就上百页!记得前阵子小编瞅见那份90页的Gemini技术报告,顿时脑袋嗡嗡作响。那会儿就幻想着:要是有个AI大脑来啃下这些"学术巨无霸",那岂不是爽歪歪? 没…

SpringDoc:一个用于自动生成API文档的工具

SpringDoc的使用 概述SpringDoc添加依赖配置 Springdoc创建 REST 控制器访问 API 文档添加注释和描述自定义配置常用注解 详细示例创建模型类创建REST控制器查看Swagger UI与OpenAPI 安全策略类型概述HTTPAPIKEYOAUTH2OPENIDCONNECTMUTUALTLS 请求头配置认证token代码实现验证 …

C++:C++11介绍

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一、C11简介 二 统一的列表初始化 2.1 {} 初始化 2.2 std::initializer_list 三 声明 3.1 auto 3.2 decltype 3.3 nullptr 四 范围for循环 五 智能指针 六 STL中一些变化…

瑞_RabbitMQ_初识MQ

文章目录 1 初识MQ1.1 同步调用1.1.1 同步调用的优势1.1.2 同步调用的缺点 1.2 异步调用1.2.1 异步调用的角色1.2.2 异步调用的优势1.2.3 异步调用的缺点1.2.4 异步调用的场景 1.3 MQ技术选型 2 RabbitMQ2.1 安装2.1.1 资源准备2.1.2 安装步骤 2.2 RabbitMQ架构2.3 RabbitMQ管理…

Starrocks解析json数组

json数据 [{"spec": "70g/支","unit": "支","skuId": "1707823848651276346","amount": 6,"weight": 70,"spuName": "伊利 甄稀 苦咖啡味雪糕 流心冰淇淋 70g/支",&quo…

你不知道,PMP证书的含金量究竟有多高

PMP考试的含金量体现在其全球认可度、对职业发展的助力、薪资潜力的提升、系统的知识体系、持续学习的要求以及专业网络的建设等方面。 尽管存在一定的维护成本和市场饱和度问题,PMP认证仍然是项目管理领域内备受推崇的资格证书。 对于追求专业发展和提升项目管理…

【安卓】发送自定义广播

文章目录 发送标准广播发送有序广播 发送标准广播 先定义一个BroadcastReceiver来准备接收广播,新建一个MyBroadcastReceiver。 public class MyBroadcastReceiver extends BroadcastReceiver {Overridepublic void onReceive(Context context, Intent intent) {To…

惊爆!OpenAI 高层发生剧烈动荡!竟然有 3 名元老同时离职,同时,马斯克竟起诉奥特曼“敲诈勒索”, GPT-5 要推迟了?

当今之 OpenAI 可谓是事端频出,波澜迭起。 开端之际,马斯克竟对 OpenAI提起诉讼,随后,重要的元老级高管公开宣告离职,而且还被披露高管领导层内部动荡不安,最终,就连原本定于年底发布的 GPT-5 …

【JVM基础15】——实践-JVM参数可以在哪里设置

目录 1- 引言:2- ⭐核心:2-1 Tomcat 设置 JVM 参数2-2 Jar包设置 JVM 参数 3- 小结:3-1 JVM参数可以在哪里设置 1- 引言: 一般这种问题是涉及到项目部署时候的参数设置,一般的部署方式 war 包部署在 tomcat 中设置jar…

MySQL第5讲--DML(数据操作语言)的基本操作

文章目录 前言DML(数据操作语言)基本操作增加数据案例展示修改数据案例展示删除数据 DML总结 前言 在第四讲MySQL第4讲–图像化界面工具DataGrip介绍中我们讲述了数据库的可视化操作界面;今天我们讲一下数据库中DML(数据操作语言)的基本操作; DML(数据操…

灵办AI:智能插件,办公与编程的得力助手

目录 引言一、灵办AI:智能化的办公伙伴二、编程能力:🔥代码阅读,学习助手🔥1、代码解读2、代码续写3、代码优化 三、插件端对话功能:智能交互,流畅体验四、翻译功能:一键翻译&#x…

JAVA毕业设计158—基于Java+Springboot的二手车交易管理系统(源代码+数据库+万字论文+ppt)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringboot的二手车交易管理系统(源代码数据库万字论文ppt)158 一、系统介绍 本项目前后端不分离(可以改为ssm版本),分为用户、管理员两种角色 1、用户&#…

AT32F421专题---SPI连接CH395Q以太网芯片

【啰嗦2句】 写作不是我主业,所以写得少,但是尽可能给满是雷同知识海洋里面添加一点独特的元素。 本文是AT32F421C8T7芯片跟以太网芯片CH395Q的SPI对接与驱动。因部分属于商业内容,不便于公开,但也会把核心需要注意的内容讲出来。…