Nginx 实现负载均衡

news/2024/11/15 2:13:41/

目录

一:负载均衡介绍

二、 负载均衡具备的功能

1.提高服务器性能

2.提高系统可用性

3.提高系统的可伸缩性

4.实现流量均衡

三、示例配置,如何使用nginx实现负载均衡

四、负载均衡策略配置

1.基于轮询的负载均衡(默认)

2. 基于权重(weight)的负载均衡

3. 基于IP HASH的负载均衡

五、 后端配合

一:负载均衡介绍

nginx 是一个高性能的 Web 服务器和反向代理服务器,可以用来实现负载均衡。nginx 的负载均衡功能是通过配置upstream块来实现的。在upstream块中,可以配置多个后端服务器,并且可以通过各种算法来选择其中一个服务器来处理请求。

二、负载均衡具备的功能

1.提高服务器性能

负载均衡可以将请求分配到多个服务器上,从而提高服务器的处理能力和响应速度。

2.提高系统可用性

当一台服务器出现故障时,负载均衡可以将请求自动转移到其他正常的服务器上,从而避免系统停机。

3.提高系统的可伸缩性

当系统负载增加时,可以通过添加更多的服务器来扩展系统的处理能力。

4.实现流量均衡

负载均衡服务器通过某种调度算法将流量分配到不同的应用程序服务器,以确保每个服务器都能得到合理的工作量,避免过载。

三、示例配置如何使用nginx实现负载均衡

​
http {upstream backend {server 192.168.116.12:8081;server 192.168.116.12:8082;}server {listen 80;location / {proxy_pass http://backend;}}​

 在上面的配置中,我们定义了一个名为backendupstream块,其中列出了三个后端服务器:backend1.example.com、backend2.example.com和backend3.example.com。然后,在server块中,我们将请求代理到backend,这样nginx就会从这三个后端服务器中选择一个来处理请求。

nginx提供了多种负载均衡算法,例如权重(weight轮询(round-robin)、IP哈希(ip-hash)。可以通过在upstream块中使用相应的配置指令来实现不同的算法。

四、负载均衡策略配置

1.基于轮询的负载均衡(默认)

每个请求,按时间顺序逐一分配到不同的后端应用服务器节点,如果后端服务出现故障,nginx能够自动剔除该节点具体配置方式如上述demo示例配置;

2.基于权重(weight)的负载均衡

权重(weight)默认值为1,权重越高,被分配的请求数量越多。

例如:A节点权重=2,B节点权重=1,则请求会按照A:B=2:1的方式轮询。

配置参考如下:

3.基于IP HASH的负载均衡

每个请求,按照访问IP的hash结果分配,由于hash值为不重复的唯一值,因此每个请求能够固定访问同一个后端服务器,这样可以做到会话保持,解决session同步问题。

配置参考如下:

​
http {ip_hash;upstream backend {server 192.168.116.12:8080;server 192.168.116.12:8081;}server {listen 80;location / {proxy_pass http://backend;}}​
  • 五、后端配合

对于后端来说,配合相对简单,只需要启动多个后端服务即可;

注意:后端启动的端口号要和上方配置nginx的端口保持一致。


http://www.ppmy.cn/news/1202375.html

相关文章

Python接口自动化测试post请求和get请求,获取请求返回值

引言 我们在做python接口自动化测试时,接口的请求方法有get,post等;get和post请求传参,和获取接口响应数据的方法; 请求接口为Post时,传参方法 我们在使用python中requests库做接口测试时,在做post接口测试…

tcpreplay命令后加上“--maxsleep=num“,num表示最大延迟时间(单位毫秒)

这个参数的含义是控制在发送每个数据包之间的最大延迟时间,单位是毫秒。它可以用来模拟真实网络中的一些延迟情况,比如网络拥塞、带宽限制等。 使用方法是在tcpreplay命令后加上"--maxsleepnum",num表示最大延迟时间,例…

jenkins gitlab CI/CD

jenkins的安装教程就不说了:Jenkins docker 一键发布 (一)_jenkins 一键发布-CSDN博客 最近打算从svn切换到gitlab,所以配置了一下jenkins的git 很简单,直接上图 1 选择 Git 2 录入gitlab的http地址(由于我的git地址不是22端口&…

用Rust和Scraper库编写图像爬虫的建议

本文提供一些有关如何使用Rust和Scraper库编写图像爬虫的一般建议: 1、首先,你需要安装Rust和Scraper库。你可以通过Rustup或Cargo来安装Rust,然后使用Cargo来安装Scraper库。 2、然后,你可以使用Scraper库的Crawler类来创建一个…

Python的计算性能优化

Python 虽然因其解释性质而在某些场合比编译语言如 C/C ,但通过各种策略和工具,可以显著提升其性能。 一. 代码优化 代码优化通常指的是修改代码以提高其效率和性能。在 Python 中,这可以通过减少程序的运行时间、内存使用或二者的结合来实…

「随笔」IT行业哪个方向比较好就业

一、IT行业就业的PEST分析 在当前的全球经济环境下,IT行业的发展迅速,就业前景广阔。以下从政治、经济、社会和科技四个维度对IT行业就业进行PEST分析。 1.1 政治(Political) 政府政策:近年来,各国政府都…

华为欧拉系统配置PAM策略

华为欧拉服务器操作系统软件 V2.0 安全说明手册 04 华为欧拉系统设置登录次数限制有区别于centos设置登录限制 维护PAM策略 本系统使用Linux-PAM实现用户的身份鉴别、口令复杂度控制、登录阈值设置等。PAM主要是由一组共享库文件(在/lib64/security/目录下&#x…

数据结构(c语言版) 链表(单链表、双链表、循环单链表、循环双链表)

作业一&#xff08;单链表&#xff09; 单链表的创建&#xff0c;增加&#xff0c;插入&#xff0c;查找&#xff0c;删除操作, 单链表集合的做差&#xff0c;交集&#xff0c;并集操作 代码 #include <stdio.h> #include <malloc.h>//定义结构体类型 struct Li…