首页 > 其他分享 >LNMP架构

LNMP架构

时间:2024-09-04 13:56:22浏览次数:14  
标签:负载 架构 请求 LNMP nginx mysql 服务器 php

1. 依据网站类型来考虑网站运行起来的环境:

网站开发的语言

JAVA:LNMT (linux nginx mysql tomcat)

PHP:(参考zabbix)LNMP, 把网站的代理放到网页根目录下

Python:LNMU (UWSGI)

2. 项目部署:

1-1 项目类型(项目的开发语言)

1-2 项目运行平台的技术选择

1-3 尽快让项目运行起来——ALL IN ONE部署(把服务和项目代码放在同一台机器上)

1-4 架构的优化:将原本部署在一台机子上的服务拆分到多个机器上去运行。)

{以苹果公司为例,运维:开发:测试=1:2:4}


所有的服务配置在一台机子上,好处是:这些服务之间的联动可以用127.0.0.1,相比于多机器之间的联动快很多,因为本地回环接口走的是内核而不是网卡。

坏处是:1.一旦这台机器出问题,全部站点都瘫痪。

2.所有服务部署在一台机器上会有资源上限,资源抢占的问题。

当项目运行起来后会出现bug,此时进行调优,把服务拆分到多台机子上,此为架构优化。

服务拆分:考虑先拆谁?

首先linux不能动,先拆对于系统资源消耗更多的服务(nginx,php-fpm,mysql在处理相同请求下哪个消耗系统资源更多则拆谁)mysql消耗系统资源最大的,下来是处理后端服务php,消耗系统资源最少的是nginx(处理静态资源),

[同样的资源nginx能处理10000个请求,php能处理3000个请求,msql能处理1000个请求]

从系统资源消耗最大的开始优化:做拆分处理,先拆mysql,但mysql同时处理

不了LNP请求,想要维持平衡,多放几个mysql服务器。多个mysql服务器同时抗LNP服务器的压力。问题是多个mysql服务器怎么保持一致?以及资源请求怎么分配的问题?

{涉及第三阶段内容}

mysql和应用类的服务器区别:mysql要解决多机数据服务的问题,用到mysql-split读写分离架构,根据不同请求分配到不同服务器上,再根据mysql-ms主从同步架构,实现数据同步。

再下一层利用ceph(fs)文件系统共享存储,让多个mysql机器同时挂载ceph文件系统,实现多机数据同步,文件系统支持读写操作。

可以对应用服务器层面再做拆分,nginx服务器只部署静态资源,php上只部署动态资源,php直连mysql。

(请求怎么从nginx到php呢?)配置文件中

location ~/.php$ {

 fastcgi_pass  127.0.0.1:9000}如果将nginx和php分开,则不能写127.0.0.1:9000,应该写php服务器ip.

与mysql相同,为了均衡负载,php服务器多加一台,不能超过mysql服务器,通过nginx中的upstream(nginx反向代理),将php服务器做成集群实现读写分离。

以tomcat为例,将toms换成phps即可

upsream toms {

 server 192.168.1.1:8080;

server 192.168.1.2:8080;

}        ——-定义集群

server {

 location / {

proxy_pass http://toms/;

}

{通过nginx读写分离和反向代理集群实现}


如果用户数量增加,同时对nginx服务器进行访问,如果给nginx加一台服务器,相应的php,mysql服务器都应该增加保持平衡。

(请求怎么被两个nginx分摊?)在web服务器上面加一个负载均衡服务器,负载均衡服务器可以实现对于nginx负载均衡处理,负载均衡服务器可以选择的软件:lvs nginx haproxy(根据请求数量进行选择)

(通过健康检查,怎么解决负载均衡服务器单点故障的问题?)再加一个负载均衡服务器,两个负载均衡服务器成为主备关系,也就是高可用集群:keepalived。

标签:负载,架构,请求,LNMP,nginx,mysql,服务器,php
From: https://blog.51cto.com/u_16996126/11917229

相关文章

  • 掌握检索技术:构建高效知识检索系统的架构与算法12
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法29
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • 掌握检索技术:构建高效知识检索系统的架构与算法27
    在检索专业知识层需要涵盖更高级的检索技术,包括工程架构和算法策略。一、工程架构工程架构在构建检索系统中决定了系统的可扩展性、高可用性和性能。比如需要考虑的基本点:分布式架构:水平扩展:采用分布式架构,将检索任务分布到多个节点上,实现水平扩展。这可以通过将索引数据......
  • MySQL5.7.36之高可用架构部署-MHA
    配置关键:程序软连接(所有节点)。因为MHA只能从/usr/bin中进行调用ln-s/application/mysql/bin/mysqlbinlog/usr/bin/mysqlbinlogln-s/application/mysql/bin/mysql/usr/bin/mysql1、配置互信(主库上操作)rm-rf/root/.sshssh-keygencd/root/.sshmvid_rsa.pub......
  • 常见API 架构的类型及优缺点分析
    常见的API架构类型主要包括RESTfulAPI、RPC(RemoteProcedureCall)风格API、SOAP(SimpleObjectAccessProtocol)API和GraphQLAPI。一、RESTfulAPI(一)优点简单易懂与广泛支持:基于标准的HTTP方法和URL设计,开发人员容易理解和学习。例如,使用常见的GET(获取......
  • 架构师备考的一些思考
    前言之前的python-pytorch的系列文章还没有写完,只是写到卷积神经网络。因为我报名成功了系统架构师的考试,所以决定先备考,等考完再继续写。虽然架构师证书不能证明技术水平,但在现实生活中的某些情况下是有意义的。考试虽然无聊,但有些考题还是蛮有意思的。思考看了几套架构师的......
  • Java应用的多租户架构设计
    Java应用的多租户架构设计大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!多租户架构(Multi-Tenancy)是SaaS(SoftwareasaService)应用中常见的设计模式,它允许多个租户(客户)共享同一个应用实例,同时保证数据隔离和独立性。在Java应用中实现多租户架构,涉及......
  • java 架构师课程资源(资料加源码加课件)
    java架构师课程全程班jvm底层加载内存池与jvm模型垃圾回收器垃圾算法阻塞队列底层源码spring zookeeper等等,需要的话自己点开查看夸克链接https://pan.quark.cn/s/0260673a6657​​​​​​   ......
  • 使用代理 IP 池进行分布式网络爬虫的架构设计:一场数据探险之旅
    嘿,各位技术爱好者们!今天我们要来一场刺激的数据探险之旅,聊聊如何使用代理IP池进行分布式网络爬虫的架构设计。准备好了吗?让我们一起揭开这个神秘而有趣的技术世界的面纱吧!一、为什么需要代理IP池和分布式网络爬虫?在当今数字化的时代,数据就如同宝藏,而网络爬虫就是我们挖......
  • 从0开始的HarmonyOS NEXT —— 认识基础架构到hello world页面添加(第一章)
    ⭐前言大家好,我是yma16,本文分享从0开始的HarmonyOSNEXT——认识基础架构到helloworld页面添加(第一章)。HarmonyOSSDK以Kit维度提供丰富、完备的开放能力,涵盖应用框架、系统、媒体、图形、应用服务、AI六大领域。应用框架相关Kit开放能力:AbilityKit(程序框架服务)、ArkUI(方舟UI......