Nginx作为负载均衡服务
Nginx作为负载均衡服务简介
Nginx负载均衡
GSLB(全局负载均衡)
调度中心节点:一个全局的调度节点;
调度节点:一个局部调度节点;
应用服务中心节点:一个全局的应用服务调度节点;
应用服务:一个局部应用服务节点;
调度中心节点管理着调度节点;
应用服务中心节点管理着应用服务;
举例:
第一步:张三请求局部调度节点,局部调度节点则返回服务地址给张三;
第二步:张三根据局部调度节点返回的服务地址,请求局部应用服务,局部应用服务则返回结果给张三。
SLB(负载均衡)
调度节点与服务节点处于一个逻辑单元里面,这样对于部分服务的实时性、响应性是非常好的。
Nginx使用的就是SLB。
四层负载均衡和七层负载均衡
四层负载均衡
按照网络OSI模型可以分为四层负载均衡和七层负载均衡;
四层负载均衡:在OSI模型里面的传输层,传输层能支持到tcp/ip协议,所以只需要转发tcp/ip协议的包,就可以实现负载均衡。
优势:性能非常好,只需要在最底层应用处理,而不需要进行一些复杂的逻辑,只需要包的转发就行
七层负载均衡
七层负载均衡主要是在应用层使用,所以它可以完成很多应用层的协议请求,比如HTTP协议的负载均衡,它可以实现HTTP信息的改写,头信息的改写,应用规则的控制。
Nginx就是典型的七层负载均衡SLB。
nginx 作为负载均衡服务配置
Nginx负载均衡模型图
upstream server就相当于配置的虚拟服务池
upstream配置语法
- Syntax: upstream name { ... }
- Default: —
- Context: http
负载均衡案例配置
server1.conf
server { listen 8001; server_name localhost; #charset koi8-r; location / { root /opt/app/code1; index index.html index.htm; } }
server2.conf
server { listen 8002; server_name localhost; #charset koi8-r; location / { root /opt/app/code2; index index.html index.htm; } }
server3.conf
server { listen 8003; server_name localhost; #charset koi8-r; location / { root /opt/app/code2; index index.html index.htm; } }
upstream_test.conf
upstream imooc { server 192.168.1.112:8001; server 192.168.1.112:8002; server 192.168.1.112:8003; } server { listen 80; server_name www.zhangbiao.com; resolver 8.8.8.8; location / { proxy_pass http://imooc; proxy_redirect default; }
刷新一次
刷新二次
属性三次
Upstream举例
upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.exmple.com:8080 backup; server backup2.example.com:8080 backup; }
Nginx作为负载均衡服务_backup状态演示
upstream_test.conf
upstream imooc { server 192.168.1.112:8001 down; server 192.168.1.112:8002 backup; server 192.168.1.112:8003 max_fails=1 fail_timeout=10s; } server { listen 80; server_name localhost www.zhangbiao.com; access_log /var/log/nginx/test_proxy.access.log main; resolver 8.8.8.8; location / { proxy_pass http://imooc; include proxy_params; } }
backup 表示备用服务器,平时用不上,一旦其他服务器挂了,就会启用备用服务器。
Nginx作为负载均衡服务_轮询策略与加权轮询
调度算法
weight 加权配置
upstream imooc {
server 192.168.1.112:8001;
server 192.168.1.112:8002;
server 192.168.1.112:8003 weight=5;
}
server {
listen 80;
server_name localhost www.zhangbiao.com;
access_log /var/log/nginx/test_proxy.access.log main;
resolver 8.8.8.8;
location / {
proxy_pass http://imooc;
include proxy_params;
}
}
7个请求会有5个请求会访问192.168.1.112:8003服务,1个访问192.168.1.112:8001服务,1个访问192.168.1.112:8002服。
ip_hash配置
upstream imooc {
ip_hash;
server 192.168.1.112:8001;
server 192.168.1.112:8002;
server 192.168.1.112:8003;
}
server {
listen 80;
server_name localhost www.zhangbiao.com;
access_log /var/log/nginx/test_proxy.access.log main;
resolver 8.8.8.8;
location / {
proxy_pass http://imooc;
include proxy_params;
}
功能:
- 同一个IP每次都是请求到固定的后端服务器
url_hash配置 (一般使用这个)
upstream imooc {
hash $request_uri;
server 192.168.1.112:8001;
server 192.168.1.112:8002;
server 192.168.1.112:8003;
}
server {
listen 80;
server_name localhost www.zhangbiao.com;
access_log /var/log/nginx/test_proxy.access.log main;
resolver 8.8.8.8;
location / {
proxy_pass http://imooc;
include proxy_params;
}
功能:
- 按照url的hash 结果来分配请求,这样是的来自同一位置的 IP 访问到固定的后端服务。
ip1 访问以下请求每次获取的内容都是一样的
http://192.168.1.112/index.html
ip2 访问以下请求每次获取的内容都是一样的
http://192.168.1.112/index.html
ip2 访问以下请求每次获取的内容都是一样的
http://192.168.1.112/index.html
相关文章
- nginx的反向代理和负载均衡的区别
- 架构设计:负载均衡层设计方案(7)——LVS + Keepalived + Nginx安装及配置
- 集群、负载均衡、微服务、分布式的概念
- 使用 HAProxy 配置 HTTP 负载均衡器
- 微服务(三)-Ribbon负载均衡
- Nginx负载均衡以及keepalived高可用实验
- 【nginx】配置Nginx实现负载均衡
- 应用负载均衡之LVS(五):lvs和nginx的wrr加权调度算法规律分析
- 解决nginx负载均衡的session共享问题
- 【Spring Cloud】Nacos服务分级存储模型与负载均衡原理与实战
- 搭建MySQL高可用负载均衡集群
- 负载均衡之 nginx
- 四层LVS与七层Nginx负载均衡的区别
- Spring Cloud Alibaba 微服务负载均衡 Ribbon(四)
- Nginx负载均衡策略
- ngnix apache tomcat集群负载均衡配置
- 基于amoeba实现mysql数据库的读写分离/负载均衡
- 华为云从入门到实战 | 负载均衡服务原理
- dubbo 负载均衡中策略决策
- 使用docker搭建mysql集群,实现负载均衡保证数据一致性方案实现
- 真正实现一键自动化部署,Nginx+Tomcat+Redis 实现负载均衡集群服务搭建,所有文件自动生成,包括自动生成配置文件参数、解决依赖问题、Session共享同步、反向代理等等
- Nginx没有启动文件、nginx服务不支持chkconfig、nginx无法自启