Nginx 配置 upstream
文章类型:nginx
发布者:hp
发布时间:2023-04-06
Nginx 最吸引人的地方就在于他可以实现负载均衡,减轻服务器压力,代理多台服务器,通过upstream模块进行反向代理,并保持系统可用
一:配置
1:Nginx http 模块下加入 upstream 节点
upstream www {
# www这个名字可以随便起,但是要尽量符合服务器的用途和域名
server 10.0.6.108:8090;
server 10.0.0.85:8091;
}
2:配置 server 节点下的 location 节点中的 proxy_pass 反向代理,
依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器
若后端服务器 down 掉,能自己主动剔除
location / {
proxy_pass http://www;
}
二:分配策略
1:指定轮询几率(weight),weight 和访问比率成正比,用于后端服务器性能不均的情况
2:每一个请求按訪问ip的hash结果分配(ip_hash)。这样每一个訪客固定訪问一个后端服务器,能够解决 session 的问题
3:按后端服务器的响应时间来分配请求(fair)。响应时间短的优先分配。与weight分配策略相似
4:按訪问 url 的 hash 结果来分配请求,使每一个 url 定向到同一个后端服务器(url_hash)。后端服务器为缓存时比較有效
5:在 upstream 中加入 hash 语句。server 语句中不能写入 weight 等其他的參数,hash_method 是使用的 hash 算法
三:属性值
1:down: 表示单前的 server 临时不參与负载.
2:weight: 默认为1, weight 越大,负载的权重就越大。
3:max_fails: 同意请求失败的次数默认为1.当超过最大次数时,返回 proxy_next_upstream 模块定义的错误.
4:fail_timeout: max_fails次失败后。暂停的时间。
5:backup: 其他全部的非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。
upstream bakend{
#定义负载均衡设备的Ip及设备状态
ip_hash;
server 10.0.0.11:9090 down;
server 10.0.0.11:8080 weight=2;
server 10.0.0.11:6060;
server 10.0.0.11:7070 backup;
}