随笔

Nginx load balancing

简述一种最快实现的

# 声明 upstream
# 后台服务分布在两台机器上
upstream server {
       server 192.168.0.101:8080;
       server 192.168.0.100:8080;
}

# 反向代理转发
location / {
        proxy_pass http://server;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
}
# 如果是幂等操作且出现以上配置的错误情况时, 会自动到下一台服务重试
# 非幂等(eg:POST, PATCH)操作则会直接 END

共享SESSION

如果你用的Cookie保存信息,那么此条可略过
单节点结构一般Session都是放内存里, 负载均衡改成了多节点, 所以需要有个共享或同步Session的手段

一般用 redis 存储, 其它诸如 memcached, 数据库都可以

DNS 轮询

域名解析配置多条相同记录
坏处是不可控, 没有多大意义, 只能保证不会全挂

VIP (Virtual IP)

本文链接:https://note.lilonghe.net/post/nginx-load-balancing.html

-- EOF --