nginx 场景实践04 - 负载均衡 upstream
syntax : upstream name ...
default : -
content : http
负载均衡实例:
upstream stark {
server 101.200.87.138:8001;
server 101.200.87.138:8002;
server 101.200.87.138:8003;
}
server {
listen 8080;
server_name www.client.com;
location / {
proxy_pass http://imooc;
}
}
HttpIndex模块
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
}
server {
location / {
proxy_pass http://backend;
}
}
后端服务器在负载均衡调度中的状态
down 当前server暂时不参与负载均衡
backup 预留的备份服务器
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务器暂停的时间
max_conns 限制最大的接收链接数
负载均衡的调度算法
轮询 按时间顺序注意分配到不同的后端服务器
加权轮询 weight值越大分配到的访问机率就更高
ip_hash 每个请求访问IP的Hash结果分配,这样来自同一个ip的固定访问一个后端服务器
url_hash 每个请求访问IP的Hash结果分配,这样来自同一个url的固定访问一个后端服务器
least_conn 最少链接数,哪个机器连接数少就会发
hash_关键值 hash自定义的key
Ip_Hash
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
server backend4.example.com;
}
Url_Hash ( version > 1.7.2 )
upstream stark {
hash $request_uri;
server 101.200.87.138:8001;
server 101.200.87.138:8002;
server 101.200.87.138:8003;
}