负载均衡Nginx配置
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream lb_servers{
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
server {
listen 80;
server_name www.qrcode.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://lb_servers;
}
}
}
nginx 分配服务器策略
第一种 轮询(默认)
- 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
upstream lb_servers{
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
第二种 weight
- weight 代表权重默认为 1,权重越高被分配的客户端越多。
upstream lb_servers{
server 127.0.0.1:8080 weight=3;
server 127.0.0.1:8001 weight=2;
server 127.0.0.1:8002 weight=1;
}
第三种 ip_hash
- 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,解决session共享的问题。
upstream lb_servers{
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
第四种 fair(第三方)
- 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream lb_servers{
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
fair;
}