Nginx负载均衡、虚拟主机

news/2024/12/5 7:02:03/

目录

常用的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-mastermake && 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.ppmy.cn/news/723388.html

相关文章

比亚迪智驾狂飙:三车多方案齐发,供应商双倍投入助阵

作者|德新 编辑|王博 比亚迪明显加快了智能驾驶上车的步伐。 销量基本盘快速增长、国产智驾方案成熟以及实现高端品牌突破的需求&#xff0c;是比亚迪推进智驾方案上车的三大动力。 在最近几个月内&#xff0c;在深圳比亚迪研发总部所在的坪山&#xff0c;搭载激光雷达的伪装…

中兴c600olt数据配置_中兴C300  OLT 配置文档

C300上常用的查看命令 ZXAN#show running interface gpon-onu_1/2/1:1 //查看2槽位1端口的虚端口配置 ZXAN#show running | begin pon-onu-mng //查看从PON-ONU-MNG开始的配置信息 ZXAN#show onu running config gpon-onu_1/2/1:1 //查看onu1远程配置数据 ZXAN(config)#show gp…

wireshark 过滤omci包_中兴OLT、ONU常见故障问题处理

FTTB1.F822摘机忙音故障如何处理?提示思路:分两大类:a.单个用户故障,如果处理;b.所有用户故障如何处理; 1)如单个用户拨号忙音确认单个用户外线与端口是否接好,RTP TID是否正确与MGC是否一致(正常IDLE状态,摘机相应的端口状态是否有相应的变化),测试号码是否正常放通,…

OLT操作命令集及排障

命令集-各条命令意义 基本命令 命令含义enable进入到特权模式config进入到全局模式&#xff0c;全局模式也就可以开始敲命令了神级命令&#xff1a;switch language-mode切换到中文interface gpon 框号/槽位全局配置模式下&#xff0c;当需要在GPON模式下对GPON端口进行配置。…

今天刚注册

今天刚注册好&#xff0c;&#xff0c;到了这传说中国最好的程序员网站。希望大家多多交流&#xff0c;多多帮助&#xff01;&#xff01;&#xff01;&#xff01;

联通loid认证_光纤LOID 认证 需要填写的用户名是什么?有人说不...

光纤LOID 认证 需要填写的用户名是什么?有人说不... 234游戏网友 提出于 2019-09-27 13:43:47 请问:光纤LOID 认证 需要填写的用户名是什么?有人说不... 采纳答案 1、光纤LOID 认证,需要填写的用户名一般是一串最大长度不超过24位的数字,例如123457654。这和运营商给我们的…

G-140W-ME 光猫改桥接方法

光猫在通讯状态下&#xff0c;拔掉光纤线&#xff0c;使用别针插入光纤的复位空&#xff0c;按10秒后&#xff0c;光猫重新启动&#xff0c;并回复出厂设置。 使用默认的用户名和超级密码登陆打开192.168.1.1&#xff0c; 用下面的默认超密登录&#xff1a; 账号&#xff1a…

解决光纤猫恢复出厂功能后的上网问题

1.注册光纤猫&#xff1a;LOID为字母数字共16位。 2.设置光纤猫&#xff1a;在网络连接中选择第二条&#xff0c;改桥接为路由&#xff0c;下面选择PPPOE&#xff0c;输入账号与密码&#xff0c;就可以光猫自动拨号上网了。