阿里云 SLB
腾讯云 CLB
青云 QLB
ucloud ULB
四层,处理网络层 IP地址,TCP/UDP,端口号
七层,处理应用层 http https ftp smtp
nginx 负载均衡配置
1.需要使用proxy_pass 代理模块
2.将客户端请求代理到一组upstream虚拟服务池
Syntax: upstream name { ... }
Default: —
Context: http
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.example.com:8080 backup;
server backup2.example.com:8080 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
部署web服务器
mkdir /code/www -p
echo "web01 172.16.1.7" > /code/www/index.html
mkdir -p /code/www
echo "web02 172.16.1.8" > /code/www/index.html
cd /etc/nginx/conf.d/
rename .conf .off *.conf #多个文件后缀更改
vim www.conf
server {
listen 80;
server_name www.oldboy.com;
location / {
root /code/www;
index index.html;
}
}
systemctl restart nginx
部署负载均衡
vim lb_web.conf
upstream oldboy {
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
include proxy_params; #引入自定义优化参数
}
}
后端状态
down server暂时不参与负载均衡
backup 预留的备份服务器 #有自身业务,能为其他业务做备份
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停时间
max_conns 限制最大的接收连接数
vim lb_web.conf
upstream oldboy {
server 172.16.1.7:80 down;
server 172.16.1.8:80;
}
server {
listen 80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
include proxy_params; #引入自定义优化参数
}
}
负载均衡算法
调度算法
轮询 按时间顺序逐一分配到不同的后端服务器(默认)rr
weight 加权轮询,weight值越大,分配到的几率越高 (默认是1)wrr
ip_hash 每个请求按访问IP的hash结果分配,同一个IP访问固定的后端服务器
url_hash 按照访问url的hash结果来分配请求,每个URL定向到同一个后端服务器
least_conn 最少连接数,哪个服务器连接数少就分发 (lc)
wlc 加权最小连接数
vim lb_web.conf
upstream oldboy {
server 172.16.1.7:80 weight=5;
server 172.16.1.8:80;
}
server {
listen 80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
include proxy_params; #引入自定义优化参数
}
}
--------------------------------------------------------------------------------------------------
vim lb_web.conf
upstream oldboy {
ip_hash;
server 172.16.1.7:80;
server 172.16.1.8:80;
}
server {
listen 80;
server_name www.oldboy.com;
location / {
proxy_pass http://oldboy;
include proxy_params; #引入自定义优化参数
}
}
=========================================================
总结:
nginx负载均衡
软件:
nginx 七层
LVS 四层
硬件:
F5
负载均衡:1对多(集群)
代理:1对1
负载均衡后端类型
down
backup
max_fails
fail_timeout
max_conns
负载均衡孙发
rr:默认,轮询
wrr:加权轮询,默认weight=1
ip_hash
url_hash
least_conn:lc
wlc: 加权lc
nginx 负载均衡
七层负载:
nginx 1.09的版本开始同时支持四层和七层。1.09之前只支持七层
session
基于服务端
cookies
基于客户端