贴个图,就差不多看懂了。
说简单点,原来nginx仅指向本地一个单站点,而现在指向负载集群。
编辑站点conf文件实现负载均衡。
1.定义负载集群
upstream <集群名称> {
server <web1>;
server <wer2>;
server <web3>;
server <werb...>;
}
2.nginx 做反代
location / {
proxy_pass http://<集群名称>;
#如果服务器要获取客户端真实IP,可以用下三句设置主机头和客户端真实地址
#proxy_set_header Host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
3.其他参数
weight :负载轮询权重,默认都为1省略,值越大越容易被访问,通常用于资源不等的服务器。
下例中:客户访问server顺序:web1、web2、web2、web3、web3、web3。
upstream <集群名称> {
server <web1> Weight=1;
server <wer2> Weight=2;
server <web3> Weight=3;
}
ip_hash:客户端第一次访问哪个server,后期就一直访问这个server,有效解决session问题。
upstream <集群名称> {
server <web1> Weight=1;
server <wer2> Weight=2;
server <web3> Weight=3;
ip_hash;
}
down:表示这个server不参与负载
下例中:web1不再参与负载
upstream <集群名称> {
server <web1> Weight=1 down;
server <wer2> Weight=2;
server <web3> Weight=3;
ip_hash;
}
backup:表示中个server作为备用,平时不参与负载,当某个server故障时,才会请求backup的server。
下例中:web3只有在web1或web2故障或忙碌时才会响应。
upstream <集群名称> {
server <web1> Weight=1;
server <wer2> Weight=2;
server <web3> Weight=3 backup;
ip_hash;
}
发表评论