Nginx负载均衡、虚拟主机

news2024/11/24 8:37:35

目录

常用的6种负载均衡算法

轮询算法(round robin)默认

权重(weight)

响应时间(fair)

连接数(least_conn)

IP_hash

url_hash(第三方)

开发优选:一致性哈希

安装步骤:

虚拟主机


常用的6种负载均衡算法

轮询算法(round robin)默认

轮询方式:依次将每个请求按时间顺序逐一分配到不同的后端服务器,如果服务器down掉,能自动删除

适用场景:后台机器性能配置一致的情况下。集群内的机器可以自动管理(恢复和剔除)

upstream 按需起名 {    
    server 127.0.0.1:6000;    
    server 127.0.0.1:6002;    
}

权重(weight)

权重方式:根据权重来分发请求到不同的机器中,指定轮询几率,weight和访问比率成正比

适用场景:后端服务器配置(性能)不均的情况

upstream 按需起名 { 
    server 127.0.0.1:6000 weight=2;    
    server 127.0.0.1:6002 weight=1;    
}

响应时间(fair)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身不支持fair,如果需要这种调度算法,则必须安装upstream_fair模块。

upstream 按需起域名 {    
    server 127.0.0.1:6000;    
    server 127.0.0.1:6002;    
    fair;    
}

连接数(least_conn)

根据后端服务器的连接状况进行分配客户请求,连接最少的服务器将被有限分配客户端请求。

upstream 按需起域名 {
    least_conn;
    server 127.0.0.1:8881;
    server 127.0.0.1:8882;
    server 127.0.0.1:8883;
}

IP_hash

每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器。

适用场景:解决session共享问题。

upstream 按需起域名 {    
    ip_hash;    
    server 127.0.0.1:6000;    
    server 127.0.0.1:6002;    
}

url_hash(第三方)

按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包

upstream 按需起域名 {    
    server squid1:3128;    
    server squid2:3128;    
    hash $request_uri;    
    hash_method crc32;    
}

开发优选:一致性哈希

一致性哈希原理:小林图解https://xiaolincoding.com/os/8_network_system/hash.html

ngx_http_upstream_consistent_hash 模块是负载均衡器,使用一个内部一致性hash算法来选择 合适的后端节点。

ngx_http_upstream_consistent_hash 模块是一个第三方模块,需要我们下载安装后使用

安装步骤:

一、github下载ngx_http_upstream_consistent_hash 

下载链接https://github.com/replay/ngx_http_consistent_hash

 二、下载成功后,将下载的压缩包上传到nginx服务器,也可直接git clone

三、进入安装nginx的目录,进行编译安装

./configure —add-module=/root/ngx_http_consistent_hash-master

make && make install

四、在nginx.conf中配置负载均衡算法

upstream 按需起域名{
    consistent_hash $request_uri;
    server 127.0.0.1:6000;
    server 127.0.0.1:6002;
}

该模块可以根据配置参数采取不同的方式将请求均匀映射到后端机器:

consistent_hash $remote_addr:可以根据客户端ip映射
consistent_hash $request_uri:根据客户端请求的uri映射
consistent_hash $args:根据客户端携带的参数进映射

虚拟主机

 当网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

例如将http://www.test1.comhttp://www.test2.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

server {
	listen 80 default_server;
	server_name _;
	return 444; # 过滤其他域名的请求,返回444状态码
}
server {
	listen 80;
	server_name www.test1.com; # www.test1.com域名
	location / {
		proxy_pass http://localhost:8080; # 对应端口号8080
	}
}
server {
	listen 80;
	server_name www.test2.com; # www.test2.com域名
	location / {
		proxy_pass http://localhost:8081; # 对应端口号8081
	}
}

在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。

server_name支持匹配方式:
<1>  完整匹配
<2>  通配符匹配
<3>  通配符结束匹配
<4>  正则匹配

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MMaction2 使用记录1——训练及测试

目录 训练及测试 Training 在你的 PC上训练 Training 多 GPUs Test 训练及测试 Training 在你的 PC上训练 你可以使用tools/train.py在一台有CPU和可选GPU的机器上训练一个模型。 下面是该脚本的完整用法&#xff1a; python tools/train.py ${CONFIG_FILE} [ARGS] 默…

基于Java出租车管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

2023RPA最佳实践案例之:实在智能助力杭州银行打造数字员工智能辅助平台

导语&#xff1a; 近期&#xff0c;实在智能荣登"2023爱分析RPA最佳实践案例"榜单。此次评选活动旨在表彰在RPA领域具备实践领先性、案例创新性、应用成熟度、价值创造等优点的企业和厂商&#xff0c;实在智能以其为杭州银行打造的RPA数字员工解决方案作为目前 RPA …

一天吃透操作系统面试八股文

内容摘自我的学习网站&#xff1a;topjavaer.cn 操作系统的四个特性&#xff1f; 并发&#xff1a;同一段时间内多个程序执行&#xff08;与并行区分&#xff0c;并行指的是同一时刻有多个事件&#xff0c;多处理器系统可以使程序并行执行&#xff09; 共享&#xff1a;系统中…

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测

回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测 目录 回归预测 | MATLAB实现PSO-DNN粒子群算法优化深度神经网络的数据多输入单输出回归预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 回归预测 | MATLAB实现PSO-DNN粒子…

一文教你搞懂性能测试常见指标

目录 1. 性能指标分类 2. 系统性能指标 2.1 响应时间 2.2 系统处理能力 2.3 吞吐量 2.4 并发用户数 2.5 错误率 3. 资源性能指标 3.1 CPU 3.2 内存 3.3 磁盘吐吞量 3.4 网络吐吞量 4. 中间件指标 5. 数据库指标 6. 稳定性指标 7. 可扩展性指标 8. 可靠性…

谷歌浏览器Crx插件库-https://crxdl.com/

地址&#xff1a;https://crxdl.com/ postman插件&#xff1a;talend json插件库&#xff1a;csdn插件 抓取视频&#xff1a;猫抓

C++primer(第五版)第十章(泛型算法)

10.1概述 大多数算法定义在头文件algorithm中.另外头文件numeric中定义了一组数值泛型算法. 一般情况下算法不直接操作容器,而是通过迭代器来对元素进行处理,因此迭代器令算法不依赖容器,但算法依赖于元素类型的操作. 泛型算法本身不会执行容器的操作,它们只会运行于迭代器之…

XD教程笔记

一、快捷键 选择&#xff1a; V 粘贴外观&#xff1a; ctrl alt V 矩形&#xff1a; R 组件&#xff1a; ctrl K 椭圆&#xff1a; E 向某一方向对齐&#xff1a; ctrl shift 方向键 钢笔&#xff1a; P 100%显示&#xff1a; ctrl 1 文本&#xff1a; T 锁定&a…

SAP ABAP 查表数据接口

查 SAP 表数据的接口 1.使用范例&#xff1a; 字段注释QUERY_TABLE查询的表名FIELDNAME查询的字段ROWCOUNT查询的行数ROWCOUNT查询的行数OPTIONS查询条件FIELDS查询字段的释义和字符长度DATA查询的数据TOTALROWS符合条件数据的行数 FIELDS 结果&#xff1a; 外围系统接口调用…

图像像素操作与二值化

目录 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 2、图像像素逻辑操作 3、图像二值化 3.1 固定阈值二值化 3.2 自适应阈值二值化 1、图像像素比较 1.1 比较函数 1.2 图像最大值最小值寻找 Mat img imread("F:/testMap/bijiao.png");Mat white i…

Bootstrap - 【echart】 统计图表基本使用

一. 前言 Bootstrap是一个流行的前端框架&#xff0c;而ECharts是一个流行的可视化库。 Bootstrap可以用来设计网站和应用程序的用户界面&#xff0c;而ECharts可以用来创建交互式和可视化的图表。 chart.js中文文档&#xff1a;http://www.bootcss.com/p/chart.js/docs/ 二.…

MYSQL的基础架构

了解MySQL&#xff08;超详细的MySQL工作原理 体系结构&#xff09; 1.MySQL体系结构 2.MySQL内存结构 3.MySQL文件结构 4.innodb体系结构 一、了解MySQL前你需要知道的 引擎是什么: MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同…

现货白银投资技巧实战教程

交易的实战技巧是指一些能让交易者获利的方法&#xff0c;当中一般都包含重要的操作纪律以及资金的配置策略&#xff0c;目标是要让投资者以合理的风险控制&#xff0c;来赢得持续的利润。现货白银投资技巧实战教程主要有以下几方面的内容&#xff1a; 1、充分了解交易细则。交…

腾讯云服务器新手入门_省钱入口_搭建网站全流程

腾讯云服务器新手指南从云服务器创建、远程连接到云服务器、安装操作系统、使用阿里云服务器建站教程等全流程&#xff0c;腾讯云服务器网分享腾讯云服务器从创建、使用到搭建网站全流程指南&#xff1a; 目录 一&#xff1a;腾讯云服务器创建 二&#xff1a;腾讯云服务器远…

leetcode84. 柱状图中最大的矩形(单调栈-java)

柱状图中最大的矩形 leetcode84. 柱状图中最大的矩形题目描述单调栈加数组优化栈结构解题代码演示用数组来优化栈结构,时间会更快 单调栈专题 leetcode84. 柱状图中最大的矩形 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/prob…

01、Linux运维发展与学习路线图

目录 一、Linux运维行业前景二、运维相关岗位三、Linux运维岗位薪酬四、Linux运维岗知识框架4.1、常见站点系统架构演变1 单机2 多机3 缓存4 向外扩展5 Docker 4.2 知识体系框架图4.3 技术人员成长的阶段4.4 方法论 一、Linux运维行业前景 流程化、标准化的工作越来越依赖于信…

结构光三维测量几种比较成熟的方法

1.飞行时间发 原理:通过直接测量光传播的时间,确定物体的面型。发射脉冲信号,接受发射回的光,计算距离。 精度:毫米级 优点:原理简单,可避免阴影和遮挡等问题,且仪器便携化。 缺点:精度相对较低 2.莫尔条纹法 原理:采用两组光栅,一个主光栅,一个基准光栅,通过…

vue + element 笔记

1.安装nodejs&#xff0c;cmd中运行 node -v 验证是否成功 2.安装cnpm&#xff0c;cmd中运行 npm install -g cnpm --registryhttps://registry.npm.taobao.org&#xff0c;cmd中 cnpm -v 验证是否成功 3.安装vue-cli&#xff0c;cmd中运行 cnpm install --global vue-cli&…

【Spark】介绍,部署与快速入门

文章目录 介绍核心模块Spark CoreSpark SQLSpark StreamingSpark MLlibSpark GraphX 部署命令行Web UI提交应用Local 模式Standalone配置文件添加 JAVA_HOME 环境变量和集群对应的 master 节点启动集群配置历史服务添加日志存储路径添加日志配置webui 配置高可用 Yarn模式配置文…