Nginx的负载均衡策略(4+2)
Nginx的负载均衡策略主要包括以下几种:
- 轮询(Round Robin):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。这是Nginx的默认策略,适合服务器配置相当、无状态且短平快的服务使用。
- 权重(Weight):指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。这种方式可以根据后端服务器的性能,为它们分配不同的权重,以达到更好的负载均衡效果。
- IP绑定(IP Hash):按照基于客户端IP的分配方式,确保相同的客户端的请求一直发送到相同的服务器,以保证session会话。这种方式适合有状态服务,比如session。
- 最少连接数(Least Connections):把请求转发给连接数最少的后端服务器。这种方式可以减少服务器的负载,使其更加均衡。
- 第三方策略:除了上述几种策略,还有一些第三方策略可以实现更复杂的负载均衡需求,这些策略需要安装第三方插件
- fair
按照服务器端的响应时间来分配请求,响应时间短的优先分配。 - url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。
下面是一个基本的Nginx负载均衡配置示例,假设你有两个后端Web服务器(backend1.example.com和backend2.example.com),你想要在它们之间分配HTTP请求:
http {
# 定义后端服务器组
upstream backend {
# server指令定义后端服务器及其参数
server backend1.example.com;
server backend2.example.com;
# 可选的负载均衡算法,默认为轮询
# least_conn; # 最少连接数
# ip_hash; # 根据客户端IP进行哈希,实现会话保持
# 更多的服务器配置参数,如权重、备用状态等
# server backend1.example.com weight=3;
# server backend3.example.com backup; # 备用服务器
}
# 虚拟主机配置
server {
# 监听端口
listen 80;
# 域名或IP地址
server_name example.com;
# 位置块,用于匹配请求URI
location / {
# 将请求代理到后端服务器组
proxy_pass http://backend;
# 代理超时设置
proxy_connect_timeout 1s;
proxy_send_timeout 1s;
proxy_read_timeout 1s;
# 传递请求头和请求体
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 其他代理设置
proxy_http_version 1.1;
proxy_set_header Connection "";
}
# 可以添加更多的location块来处理特定的路径或模式
}
# 可以添加更多的server块来配置不同的虚拟主机
}
在这个配置中,upstream块定义了一个名为backend的后端服务器组,其中包含两个服务器。默认情况下,Nginx使用轮询算法将请求分发到这些服务器上。你可以在server指令中使用weight参数来指定服务器的权重,权重较高的服务器将接收更多的请求。使用backup参数可以指定备用服务器,只有在所有非备用服务器都不可用时才会接收请求。
Nginx的负载均衡策略(4+2)的更多相关文章
- Nginx专题(2):Nginx的负载均衡策略及其配置
本文介绍了Nginx的负载均衡策略,一致性hash分配原理,及常用的故障节点的摘除与恢复配置. 文章来源:宜信技术学院 & 宜信支付结算团队技术分享第一期-宜信支付结算八方数据团队高级技术经理 ...
- Nginx的负载均衡策略
Nginx的负载均衡策略 个人博客地址: https://note.raokun.top 拥抱ChatGPT,国内访问网站:https://www.playchat.top 共六种: 轮询.权重.ip ...
- nginx+tomcat负载均衡策略
測试环境均为本地,測试软件为: nginx-1.6.0,apache-tomcat-7.0.42-1.apache-tomcat-7.0.42-2.apache-tomcat-7.0.42-3 利用n ...
- Nginx多种负载均衡策略搭建
背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡,本文详细讲述Nginx下的几种负载均衡策略. 轮询 轮询,顾名思义,就是轮流请求,基于上篇文章的介绍,我们将负载均衡策略聚焦于default.c ...
- [日常] nginx与负载均衡策略
upstream mail.sina.net { #upstream的负载均衡,weight是权重,可以根据机器配置定义权重.weigth参数表示权值,权值越高被分配到的几率越大. server we ...
- 解析 Nginx 负载均衡策略
转载:https://www.cnblogs.com/wpjamer/articles/6443332.html 1 前言 随着网站负载的不断增加,负载均衡(load balance)已不是陌生话题. ...
- 【Nginx】负载均衡-加权轮询策略剖析
转自:江南烟雨 本文介绍的是客户端请求在多个后端服务器之间的均衡,注意与客户端请求在多个nginx进程之间的均衡相区别. 如果Nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服 ...
- [转载] nginx的负载均衡
原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...
- NginX——配置负载均衡
A. 在http模块加上upstream配置 upstream www.myweb.com { server 127.0.0.1:9100 weight=3; server ...
- nginx 负载均衡策略
nginx 负载均衡策略 1. 轮询轮询方式是nginx负载均衡的默认策略,根据每个server的权重值来轮流发送请求,例如:upstream backend {server backend1.e ...
随机推荐
- 用上了Jenkins,个人部署项目真方便!
作者:小傅哥 博客:https://bugstack.cn 项目:https://gaga.plus 沉淀.分享.成长,让自己和他人都能有所收获! 本文的宗旨在于通过简单干净实践的方式教会读者,如何在 ...
- uniapp面试题
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- idea报错 Error running GctlBrpApplication. Command line is too long. Shorten the command line and rerun.解决方案
idea新导入项目有时候会出现以下报错,解决方法如下: 一:报错截图,报错原因是命令行太长,让缩短命令长度再运行. 二:解决方法如下:在剪头标记位置加入代码: <property name=&q ...
- Java并发(二十三)----同步模式之保护性暂停
1.定义 即 Guarded Suspension,用在一个线程等待另一个线程的执行结果 要点 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从 ...
- SpringBoot不再需要@Autowired来注入属性
实操部分 需要lombok依赖 在对应需要注入属性的类上添加注解 @RequiredArgsConstructor 所有需要注入的属性改为final修饰 为什么 lombok的@RequiredArg ...
- 火山引擎ByteHouse:如何为OLAP设计高性能向量检索能力?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 背景 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力"异军 ...
- 聚石塔的K8s 容器服务使用注意事项,坑的总结
1. 首先聚石塔是不能使用 8080 端口的,会审核不通过. 2.然而,容器服务默认的却是8080,最彻底的解决方法就是修改成80,注意3个地方: 以上3个地方要严重留意,缺一不可,已经踩了2次坑了, ...
- delphi 异常测试(我自己捕捉)
由于最近的短信模块老是报SocketErorr错误,有的时候也不确定是哪里有问题,影响短信的销售,所以这里这样写,把出现的异常捕捉到显示出来.然后跳过这个不发送 ------------------- ...
- HBase-通过外部表将Hive数据写入到HBase
a) 准备测试数据 这里准备的csv文件data_test.csv,内容没用''包裹,逗号作为列分隔符 171301,燕青,男,27,发展部 171207,武松,男,39,开发部 171307,李逵, ...
- 永久解决 WSL vm.max_map_count 65530 is too low 的问题
问题 在使用基于 WSL 的 Docker 的时候,启动 ES 总是会出现 vm.max_map_count 65530 is too low 问题,导致容器无法启动,网上答案基本就两种,例如 sta ...