当前位置: 首页 > news >正文

负载均衡、代理和动静分离的战略

一、Nginx简介

1.1 概述

Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数

1.2正向代理与反向代理

1.2.1正向代理

正向代理:如果把局域网外的 Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

需要在客户端配置代理服务器进行指定网站访问。

1.2.2反向代理

反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器由反向代理服务器去选择目标服务器获取数据后,在返回给客户端此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址

1.3负载均衡

客户端发送多个请求到服务器,服务器处理请求,有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

这种架构模式对于早期的系统相对单一,并发请求相对较少的情况下是比较适合的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及系统业务的复杂度增加,这种架构会造成服务器相应客户端的请求日益缓慢,并发量特别大的时候,还容易造成服务器直接崩溃。很明显这是由于服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?

我们首先想到的可能是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机器的物理性能来解决此问题,但是我们知道摩尔定律的日益失效,硬件的性能提升已经不能满足日益提升的需求了。最明显的一个例子,天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的系统架构,将机器都增加到现有的顶级物理配置,都是不能够满足需求的。那么怎么办呢?上面的分析我们去掉了增加服务器物理配置来解决问题的办法,也就是说纵向解决问题的办法行不通了,那么横向增加服务器的数量呢?这时候集群的概念产生了,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡 。

、1.4动静分离

二、Nginx的安装

2.1准备工作

(1)打开虚拟机,使用远程连接工具连接 linux 操作系统 

(2)到 nginx 官网下载软件:nginx news

(3)需要准备的素材

pcre-8.37.tar.gz
openssl-1.0.1t.tar.gz
zlib-1.2.8.tar.gz
nginx-1.11.1.tar.gz

2.2开始进行 nginx 安装

(1)安装 pcre 依赖

第一步:联网下载 pcre 压缩文件依赖:

wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz

如果你发现你的下载文件大小不对,访问:

https://sourceforge.net/p/pcre/activity/?page=1&limit=100#553fce622718464538c5fad4

选择对应版本进行下载,

第二步: 解压压缩文件

# 使用命令:tar –xvf pcre-8.37.tar.gz

第三步:编译

进入 pcre-8.37 执行./configure,完成后,回到 pcre 目录下执行 :

make && make install

第四步:查看

查看 pcre 依赖是否安装成功:

pcre-config --version

(2)安装 openssl 、zlib 、 gcc 依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

(3)安装 nginx

第一步:解压 nginx-1.12.2.tar.gz

tar -xvf nginx-1.12.2.tar.gz

第二步:进入解压后的目录

此时,里面有一个文件 configure,执行

./configure

第三步:编译

make && make install

2.3启动Nginx

进入目录 /usr/local/nginx/sbin/nginx<

相关文章:

负载均衡、代理和动静分离的战略

一、Nginx简介 1.1 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 1.2正向代理与反向代理 1.2.1正向代理 正向代理:如果把局域网外的 Internet 想象…...

Gitlab用户角色权限Guest、Reporter、Developer、Master、Owner

Gitlab用户在组中有角色权限&#xff1a;Guest、Reporter、Developer、Master、Owner Gitlab权限管理 Guest&#xff1a;可以创建issue、发表评论&#xff0c;不能读写版本库 Reporter&#xff1a;可以克隆代码&#xff0c;不能提交&#xff0c;QA、PM可以赋予这个权限 Deve…...

C#上位机序列9: 批量读写+事件广播+数据类型处理

一、源码结构&#xff1a; 二、运行效果&#xff1a; 三、源码解析 1. 读取配置文件及创建变量信息&#xff08;点位名称&#xff0c;地址&#xff0c;数据类型&#xff08;bool/short/int/float/long/double&#xff09;&#xff09; 2. 异步任务处理&#xff1a;读任务&…...

科技资讯|2023全球智能手表预估出货1.3亿块,智能穿戴提升AI功能

根据集邦咨询公布的最新报告&#xff0c;受全球经济低迷影响&#xff0c;2023 年全球智能手表出货量预估为 1.3 亿块。苹果以超过 30% 的份额领先&#xff0c;其次是三星&#xff08;接近 10%&#xff09;、华为、Garmin、Fitbit 等。 报告认为苹果、三星和华为等主要智能手表…...

技术架构之术

架构特征 1、结构性特征 易理解、可复用、可移植、可扩展、可配置、可维护、可测试 2、运行时特征 可靠性、稳定性、高安全、可伸缩、易用性、可用性、高性能、可观测 3、交付性特征 高效率、高适配、标准化、灵活性、易定制、统一性、开放性 如何开展我们的架构工作 价值分…...

【自用重要】概率论中θ和θ尖的区别【计算时的一般方法】

θ就相当于x&#xff0c;是一个值。 θ尖就相当于X&#xff0c;是一个量。 在做分布函数的时候&#xff0c;最好把θ尖换成Z的形式&#xff0c;因为他们都是量&#xff0c;这样比较好看。 在做不等式的时候&#xff0c;一般把量放在中间进行计算&#xff0c;因为随机变量有分…...

Redis设计与实现笔记 - 数据结构篇

Redis设计与实现笔记 - 数据结构篇 相信在我们日常使用中&#xff0c;会经常跟 Redis 打交道。数据结构 String、Hash、List、Set 和 ZSet 都是常用的数据类型。对于使用场景&#xff0c;我们可以滔滔不绝地说很多&#xff0c;但是我们从来就没有关心过它们的底层实现&#xf…...

线性代数-Python-01:向量的基本运算 -手写Vector -学习numpy的基本用法

文章目录 代码目录结构Vector.py_globals.pymain_vector.pymain_numpy_vector.py 一、创建属于自己的向量1.1 在控制台测试__repr__和__str__方法1.2 创建实例测试代码 二、向量的基本运算2.1 加法2.2 数量乘法2.3 向量运算的基本性质2.4 零向量2.5 向量的长度2.6 单位向量2.7 …...

数字图像处理实验记录二(直方图和直方图均衡化)

文章目录 一、基础知识1&#xff0c;什么是直方图2&#xff0c;直方图有什么用3&#xff0c;直方图均衡化4、原理代码实现 二、实验要求任务1&#xff1a;任务2&#xff1a; 三、实验记录任务1&#xff1a;任务2&#xff1a; 四、结果展示任务1&#xff1a;任务2&#xff1a; 五…...

大数据Flink(九十九):SQL 函数的解析顺序和系统内置函数

文章目录 SQL 函数的解析顺序和系统内置函数 一、​​​​​​​SQL 函数...

TODO Vue typescript forEach的bug,需要再核實

forEach 一個string[]&#xff0c;只有最後一個匹配條件有效&#xff0c;其它條件無效。 所以&#xff0c;只能替換成普通的for循環。 console.log(taskList)// for (const _task of taskList.value) {// if (_task invoiceSendEmail) {// form.value.invoiceSendEmail…...

简记一个错误

简记一个Flutter错误&#xff1a; Using hardware rendering with device sdk gphone64 x86 64. If you notice graphics artifacts, consider enabling software rendering with “–enable-software-rendering”. Launching lib\main.dart on sdk gphone64 x86 64 in debug …...

第四次作业

1.打印各种图形 A.矩形 a int(input("请输入行数: ")) i 0 while i < a:print("*"*10)i1 结果&#xff1a; B.直角三角形 a int(input("请输入行数: ")) i 0 while i<a:print("*"*(i1))i1 结果&#xff1a; C.反直角三角形 …...

面试问题整理总结

1.自我介绍 2.为什么想转测试 想换一个方向&#xff0c;测试开发在一定程度上也是属于开发&#xff0c;而且站在测试的角度能看到全局的东西更多&#xff0c;对需求的理解需要更深”&#xff0c;之前的开发工作比较专一&#xff0c;测试的视野更加开阔&#xff0c;想要站在更高…...

进阶JAVA篇- Collection 类的常用的API与 Collection 集合的遍历方式

目录 1.0 Collection 类的说明 1.1 Collection 类中的实例方法 2.0 Collection 集合的遍历方式&#xff08;重点&#xff09; 2.1 使用迭代器&#xff08; Iterator &#xff09;进行遍历 2.2 使用增强型 for 循环进行遍历 2.3 使用 Java 8的 Stream API 进行遍历&#xff08;使…...

CentOS | 添加普通用户并授权sudo

sudo -i adduser peter passwd peter whereis sudoers nano /etc/sudoers添加一行新用户到root组 ## Allow root to run any commands anywhere root ALL(ALL) ALL peter ALL(ALL) ALL如果提升权限后无法cd到其他目录等&#xff0c;修改 /etc/passwd 文件&…...

【MyBatis】mybatis工具类迭代

目录 MyBatis工具类的迭代 ThreadLocal使用 mybatis工具类终极版&#xff1a; MyBatis工具类的迭代 public class MyBatisUtil {//工具类构造方法私有化private void MyBatisUtil() {}//方法一public static SqlSession getSqlSession(){try {SqlSessionFactoryBuilder sql…...

MSQL系列(六) Mysql实战-SQL语句优化

Mysql实战-SQL语句优化 前面我们讲解了索引的存储结构&#xff0c;BTree的索引结构&#xff0c;以及索引最左侧匹配原则&#xff0c;Explain的用法&#xff0c;可以看到是否使用了索引&#xff0c;今天我们讲解一下SQL语句的优化及如何优化 文章目录 Mysql实战-SQL语句优化1.…...

kaggle新赛:UBC卵巢癌亚型分类和异常检测大赛【图像分类】

赛题名称&#xff1a;UBC Ovarian Cancer Subtype Classification and Outlier Detection (UBC-OCEAN) 赛题链接&#xff1a;https://www.kaggle.com/competitions/UBC-OCEAN 赛题背景 卵巢癌是女性生殖系统最致命的癌症。目前&#xff0c;卵巢癌诊断依赖病理学家评估亚型。…...

基于nodejs+vue云旅青城系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…...

《孙哥说Spring5》笔记汇总

时隔两个多月&#xff0c;终于将《孙哥说Spring5》的笔记文章全部整理完了&#xff0c;在这里做个汇总。孙哥的Spring课讲的非常好&#xff0c;深度和广度都有所兼顾&#xff0c;推荐大家去看 点击学习《孙哥说Spring5》 基础铺垫 1️⃣ Spring5应用之基础扫盲2️⃣ Spring5应…...

在使用了spring-cloud-starter-gateway后,为什么还会发生cors问题

//1.需要配置类 import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.reactive.CorsWebFilter; import org.sp…...

CentOS7安装MySQL8.0.28

CentOS7安装MySQL8.0.28 一、下载MySQL安装包二、安装配置mysql 一、下载MySQL安装包 点击以下链接可以自动跳转&#xff1a;MySQL官网 接下来按如图所示依次点击进入。 选择自己所需要版本 此处如需下载历史版本可以点击 二、安装配置mysql 1、登录ssh或其他相关软件上…...

AutoSAR入门:应用背景及简介

1、应用背景 在我们现在的汽车行业里面&#xff0c;汽车电子的发展过程中&#xff0c;我们发现有一些新的趋势汽车电子系统的复杂性不断增长。 我们现在可以看到车辆有越来越多的功能&#xff0c;那么这些功能呢&#xff0c;也在往这个控制器上进行集中&#xff0c;比如说我们现…...

C++初阶(三)

文章目录 一、auto关键字(C11)1、auto简介2、auto使用规则1、 auto与指针和引用结合起来使用2、 在同一行定义多个变量 3、auto不能推导的场景1、 auto不能作为函数的参数2、 auto不能直接用来声明数组3、特性总结 二、基于范围的for循环(C11)1、范围for的语法2、 范围for的使用…...

PHP的学习入门建议

学习入门PHP的步骤如下&#xff1a; 确定学习PHP的目的和需求&#xff0c;例如是为了开发网站还是为了与数据库交互等。学习PHP的基础语法和程序结构&#xff0c;包括变量、数据类型、循环、条件等。学习PHP的面向对象编程&#xff08;OOP&#xff09;概念和技术。学习与MySQL…...

骰子涂色(Cube painting, UVa 253)rust解法

输入两个骰子&#xff0c;判断二者是否等价。每个骰子用6个字母表示&#xff0c;如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的&#xff0c;因为图4-8&#xff08;a&#xff09;所示的骰子沿着竖直轴旋转90之后就可以得到图4-8&#xff08;b&a…...

elasticsearch的docker安装与使用

安装 docker network create elasticdocker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.4# 增加虚拟内存&#xff0c; 此处适用于linux vim /etc/sysctl.conf # 添加 vm.max_map_count262144 # 重新启动 sysctl vm.max_map_countdocker run --name es01 --net …...

ELK 单机安装

一丶软件下载 elasticsearch: https://www.elastic.co/downloads/past-releases kibana: https://www.elastic.co/downloads/past-releases 选择对应的版本的下载即可 二、es 安装es比较简单 rpm -ivh elasticsearch-2.4.2.rpm 修改配置文件 /etc/elasticsearch/elas…...

优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符

&#x1f974;博主&#xff1a;小猫娃来啦 &#x1f974;文章核心&#xff1a;优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符 文章目录 引言空值处理的挑战解决方案1&#xff1a;?? 运算符基本用法与 || 运算符的区别实际应用场景举例 解决方案2&#xff…...