nginx - 负载均衡配置-负载均衡策略

news/2024/5/14 21:42:25/文章来源:https://blog.csdn.net/qq_48391148/article/details/126759762

目录

知识点1:网站流量分析指标

什么是pv?

什么是uv?

什么是IP?

知识点2:正向代理和反向代理

知识点3:负载均衡实验

IP地址规划:

实验拓扑图

知识点4:负载均衡策略

1、请求轮询

2、增加权重

 3、最少连接数

4、ip_hash 策略 


知识点1:网站流量分析指标

什么是pv?

PV(page view),即页面浏览量,通常是衡量一个网络新闻频道或网站的主要指标

什么是uv?

UV(unique visitor),指的是访问某个站点或点击某个网站的不同ip地址的人数

在同一天内,uv只记录第一次进入网站的具有独立IP的访问者,在同一天内再次访问该网站则不计数

什么是IP?

IP表示拥有特定唯一IP地址的计算机访问您的网站的次数,

 ###########################################################################################

知识点2:正向代理和反向代理

正向代理:

        代理的对象为客户

        代理清楚知道客户要访问的目标

反向代理:

        代理的对象为服务器

        代理不知道客户要访问的目标

知识点3:负载均衡实验

IP地址规划:

load balance 负载均衡服务器:192.168.44.132

web1 真实web服务器 :192.168.44.166

web2 真实web服务器:192.168.44.141

web3 真实web服务器:192.168.44.205

实验拓扑图

 首先在web1,web2,web3,三台web服务器安装nginx软件,使用一键安装nginx脚本安装

一键安装nginx脚本:

[root@web1 ~]# cat onekey_install_nginx.sh #!/bin/bash#解决软件的依赖关系,需要安装的软件包
yum install epel-release -y
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim geoip geoip-devel wget -y#新建liming用户和组
id  liming || useradd liming -s /sbin/nologin#下载nginx软件
mkdir  /liming99 -p
cd /liming99
wget  https://nginx.org/download/nginx-1.21.6.tar.gz#解压软件
tar xf nginx-1.21.6.tar.gz 
#进入解压后的文件夹
cd nginx-1.21.6#编译前的配置
./configure --prefix=/usr/local/scliming99  --user=liming --group=liming  --with-http_ssl_module   --with-threads  --with-http_v2_module  --with-http_stub_status_module  --with-stream  --with-http_geoip_module --with-http_gunzip_module#如果上面的编译前的配置失败,直接退出脚本
if (( $? != 0));thenexit
fi
#编译
make -j 2
#编译安装
make  install#修改PATH变量
echo  "PATH=$PATH:/usr/local/scliming99/sbin" >>/root/.bashrc
#执行修改了环境变量的脚本
source /root/.bashrc#firewalld and selinux#stop firewall和设置下次开机不启动firewalld
service firewalld stop
systemctl disable firewalld#临时停止selinux和永久停止selinux
setenforce 0
sed  -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config#开机启动
chmod +x /etc/rc.d/rc.local
echo  "/usr/local/scliming99/sbin/nginx" >>/etc/rc.local#修改nginx.conf的配置,例如:端口号,worker进程数,线程数,服务域名sed  -i '/worker_processes/ s/1/2/' /usr/local/scliming99/conf/nginx.conf
sed  -i  '/worker_connections/ s/1024/2048/' /usr/local/scliming99/conf/nginx.conf
sed  -i -r '36c \\tlisten  80;' /usr/local/scliming99/conf/nginx.conf
sed  -i -r '37c \\tserver_name www.liming.com;' /usr/local/scliming99/conf/nginx.conf#killall nginx进程
killall -9 nginx#启动nginx
/usr/local/scliming99/sbin/nginx

修改web服务首页index.html

[root@web1 html]# cat index.html
this is nginx-web1  192.168.44.166
[root@web2 html]# cat index.html 
this is nginx-web2  192.168.44.141
[root@web3 html]# cat index.html 
this is nginx-web3  192.168.44.205

修改load balance 负载均衡服务器nginx的配置文件nginx.conf

在http块里面定义一个负载均衡器,然后创建一个路由规则,使用创建的upstream节点

    # 定义上游服务器集群,定义一个负载均衡器upstream myweb1{server 192.168.44.166;server 192.168.44.141;server 192.168.44.205;}server {listen       80;location / {# 使用myweb1分配规则,即刚才定义的upstream节点proxy_pass http://myweb1;

 修改完配置文件以后刷新一下nginx服务,然后再访问load balance服务器就会将流量采用轮询的方式分发到三台真实web服务器上面

 

 

############################################################################################

知识点4:负载均衡策略

1、请求轮询

依次转发给配置的服务器,即上个实验,默认是以轮询的方式来分发流量访问

2、增加权重

使用服务器权重,还可以进一步影响ngixn负载均衡算法,谁的权重越大,分发到的请求就越多

修改负载均衡服务器配置文件

    # 定义上游服务器集群,定义一个负载均衡器upstream myweb1{server 192.168.44.166 weight=3;server 192.168.44.141 weight=1;server 192.168.44.205 weight=1;}server {listen       80;location / {# 使用myweb1分配规则,即刚才定义的upstream节点proxy_pass http://myweb1;}

 接下来访问负载均衡服务器,它会根据权重的多少来分发流量,权重越大,分发到的请求就越多

 

 

 

 

 ############################################################################################

 3、最少连接数

在连接负载最少的情况下,nginx会尽量避免过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,避免服务器过载

轮询法不能识别在给定的时间里保持了多少连接,因此可能发生,服务器B服务器收到的连接比服务器A少但是它已经超载,比如B服务器虽然收到的连接数少,但是都保持连接,没有断开,A服务器虽然收到的连接数多,但是实际大都断开连接,这时候就需要优先选择活跃连接数最少的服务器

    # 定义上游服务器集群,定义一个负载均衡器upstream myweb1{least_conn;server 192.168.44.166;server 192.168.44.141;server 192.168.44.205;}server {listen       80;location / {# 使用myweb1分配规则,即刚才定义的upstream节点proxy_pass http://myweb1;}

 ############################################################################################

4、ip_hash 策略 

每个请求按访问的ip分配hash,即一个客户端第一次请求nginx后,会分配到hash,下次改客户端请求 ##的结果还是一样的,不会改变,解决session问题。

    # 定义上游服务器集群,定义一个负载均衡器upstream myweb1{ip_hash;server 192.168.44.166;server 192.168.44.141;server 192.168.44.205;}server {listen       80;location / {# 使用myweb1分配规则,即刚才定义的upstream节点proxy_pass http://myweb1;}

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring5.3学习——from 官网 day1-1

Spring5.3学习——from 官网day1-1Spring5.3学习——from 官网day1-1前言概述Spring的设计理念Spring核心:IOC什么是IOC解释IOC容器的包什么是BeanBeanFactory接口简述ApplicationContext接口简述BeanFactory源码描述以下是Bean工厂创建和销毁bean的完整生命周期流程…

Matlab论文插图绘制模板第48期—平行坐标图(Parallelplot)

​上一期文章中,分享了Matlab帕累托图的绘制模板: 这一次,再来分享一种特殊的线图:平行坐标图。 ‘平行坐标图是一种通常的可视化方法,用于对高维几何和多元数据的可视化……为了克服传统的笛卡尔直角坐标系容易耗尽空…

好心情精神心理科:80%双相情感障碍被误诊,千万注意鉴别

双相情感障碍又称躁郁症,其表现复杂,容易与其他精神疾病(包括边缘型人格障碍)相混淆,超过80%的患者未能得到正确诊断。 具体如何区分双相情感障碍与边缘型人格障碍?在回答这个问题之前,好心情精…

从规模走向规模经济,锅圈食汇回归餐饮初心

预制菜源自美国,在日本因冷链技术发展而普及。后疫情时代,预制菜在中国餐饮市场加速渗透,成为行业的新风向。 9月,第一财经与CBNData发布“Growth502022中国新消费品牌年度增长力榜单”,预制菜品牌锅圈食汇入选。 锅…

设计模式学习笔记--责任链模式

责任链模式 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件

我们经常会使用移动硬盘或 U 盘进行大体积文件的分享、携带。但有时候别人提供的NTFS移动硬盘或者U 盘在 Mac 电脑中只能读取,无法将文件导入到其中。这是因为常见的 NTFS 硬盘格式在 Mac 中不能兼容。 当你从 Windows 转到了 Mac 平台,可能会发现之前用…

RocketMQ-流程图-概念

文章目录RocketMq的角色消息发送的流程RocketMq的角色 Producer:消息的发送者,生产者;举例:发件人Consumer:消息接收者,消费者;举例:收件人Broker:暂存和传输消息的通道…

Python数据分析教程(一):Numpy

数据的纬度 一维数据:列表和集合类型二维数据:列表类型多维数据:列表类型高维数据:字典类型或数据表示格式,如json、xml、yaml维度:一组数据的组织形式列表和数组:一组数据的有序结构Numpy Numpy介绍NumPy是一个开源的Python科学计算基础库,包含:一个强大的N维数组对象…

渗透测试神器Nmap使用教程

渗透测试神器Nmap使用教程1.nmap简介2.常用参数3.nmap实战命令1.nmap简介 Nmap (网络映射器)是Gordon Lyon最初编写的一种安全扫描器,用于发现计算机网络上的主机和服务,从而创建网络的“映射”。为了实现其目标,Nmap…

java计算机毕业设计基于安卓Android的金融保险app(源码+系统+mysql数据库+Lw文档)

项目介绍 计算机信息技术的发展,推动了金融保险信息化管理的进程,并随着互联网概念的提出,各种互联网软件也应运而生。在传统的管理中,各种信息管理难,传播速度慢,需要耗费很长时间统计核查,不…

Oracel中视图相关概念和操作(一)

目录 1.视图概念(有必要) (1)视图基本概念 (2)视图和定义的表的联系 (3)视图的优点 2.创建视图 (1)使用SQL DEVELOPER创建视图(可视化&#x…

如何正确的审核交易商牌照?这些雷区你不得不防

对于外汇平台来说,交易牌照可以说是重中之重,一个交易没有牌照,可以说是没有任何约束,属于监管裸奔状态,这种平台10个有10个就是黑平台。但也正因如此,无数黑平台也会在牌照上面做手脚,这些人手…

基于stm32单片机甲醛烟雾温湿度检测仪设计

目录 第1章 绪论 1.1 引言 1.1.1甲醛的特性及危害 1.1.2甲醛的来源 1.2甲醛检测仪的种类 第2章 概述 2.1系统总概述 2.2总体方案设计 2.3硬件设计 2.4软件设计 第3章 硬件设计 3.1 硬件设计主电路图 3.2 硬件选择 3.2.1 MCU的选择与简介 3.2.3 …

Gimbal Lock欧拉角死锁问题

技术背景 在前面几篇跟SETTLE约束算法相关的文章(1, 2, 3)中,都涉及到了大量的向量旋转的问题--通过一个旋转矩阵,给定三个空间上的欧拉角\(\alpha, \beta, \gamma\),将指定的向量绕对应轴进行旋转操作。而本文主要就阐述这些旋转操作中&…

复习十二:广义表

一、广义表的定义及其重要特性 广义表简称表,它是线性表的推广。一个广义表是n(n>0)个元素的一个序列,若n0时,则称为空表; 广义表中有两种数据元素,即有两种结构的结点:表结点和原子结点;广义…

大数据ClickHouse进阶(十一):ClickHouse的Join子句

文章目录 ClickHouse的Join子句 一、连接精度

Springcloud的学习笔记(二)

Springcloud学习笔记(一) 目录8 消费者订单模块9 重构10 Eureka服务注册与发现10.1 Eureka基础知识10.2 EurekaServer服务端安装10.3 支付微服务8001入驻进EurekaServer10.4 订单微服务81入驻进EurekaServer10.5 Eureka集群原理说明10.6 Eureka集群环境构建10.7 订单支付两微服…

ASR6500S SIP模块与SX1262系列集成替代SX1278 SX1262内核+RF前端

ASR6500S是一系列LoRa SIP模块,集成了RF前端和LoRa无线电收发器SX1262系列,支持LoRa 和FSK调制。LoRa技术是一种针对LPWAN应用的低数据速率、超远程、超低功耗通信进行优化的 广谱协议。 ASR6500S设计为电池寿命长,有功接收电流消耗4.2 mA,最大发射功率可达+22dBm。该模块实…

Shell之练习题

目录 一、练习一 1.1、分析 1.2、编辑脚本文件 1.3、测试 二、练习二 2.1、分析 2.2、编辑脚本文件 ​2.3、测试 三、练习三 3.1、分析 3.2、编辑脚本文件 ​3.3、测试 四、练习四 4.1、分析 4.2、编辑脚本文件 4.3、测试​ 一、练习一 需求:给定一…

Python量化交易实战:获取股票数据并做分析处理

量化交易(也称自动化交易)是一种应用数学模型帮助投资者进行判断,并且根据计算机程序发送的指令进行交易的投资方式,它极大地减少了投资者情绪波动的影响。量化交易的主要优势如下: 快速检测客观、理性自动化 量化交易…