一、什么是负载均衡?
负载均衡就是将负载分配到不同的服务器上,保证服务的响应速度。
二、Nginx配置负载均衡
Nginx配置负载均衡相对简单,在nginx中的conf目录中找到nginx.conf,添加一下配置:
http {
...
upstream myserver {
server ip_address:port;
server ip_address:port;
}
server {
listen 80;
server_name myserver;
location / {
proxy_pass http://myserver;
}
}
...
}
nginx
通过upstream
模块配置网络数据分发,那么nginx
是如何分配这些网络数据的呢?
三、Nginx负载均衡策略
3.1 轮询(默认)
每个请求按照事件顺序逐一分配到不同服务器,如果某台服务器宕机,将其剔除,从剩下的服务器中逐一轮序。
3.2 weight设置权重
通过weight
设置权重。权重默认为1,权重越高,被分配的客户端就越多。
upstream myserver {
server ip_address:port weight=1;
server ip_address:port weight=3;
}
3.3 ip_hash
每个请求按照访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可解决session问题。
upstream myserver {
ip_hash;
server ip_address:port weight=1;
server ip_address:port weight=3;
}
3.4 fair
按照响应时间分配请求。
upstream myserver {
server ip_address:port weight=1;
server ip_address:port weight=3;
fair;
}