nginx-负载均衡
当客户端向反向代理服务器(比如 Nginx)发出请求,如果 Nginx 代理了多个WEB 服务器(集群),Nginx 会将请求/负载分发到不同的服务器,也就是负载均衡
Nginx 提供了几种分配方式(策略):
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除
#包含所有需要负载均衡的上游服务器
upstream calservers {# 不能带下划线, 否则会失败, 但是语法检测不到
server 192.168.225.128:8080;#max_fails fail_timeout proxy_connect_timeout proxy_next_upstream_tries proxy_next_upstream_timeout backup
server 192.168.225.128:8081;
}
server {
listen 80;
server_name 192.168.225.128;
location / {
root html;
proxy_pass http://calservers;#这里的名字和upstream名字一样
index index.html index.htm;
}
2、weight
weight 代表权,重默认为 1,权重越高被分配的客户端越多
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配