在上一节,写了nginx里的反向代理。这一节的内容是如果我反向代理了X台服务器,来实现负载均衡。话不多说我们进入正题
- 如果我们反向代理配置一个机器,那么配置是这样的
server {
listen 80;
server_name test3.aionlinefun.icu;
location / {
proxy_pass http://google.com;
root html/test;
index index.html index.htm;
}
}
-
现在我要配置多台机器,那么我们只需要在server同级 新增一个upstream代码块,如下所示。 http123 这个名字可以随便填写。后面的weight就是这2台服务器的权重,注意中间的空格以及分号结尾。然后我们在proxy_pass那里,引用 http123即可
upstream http123 { server 服务器IP1:80 weight=5; server 服务器IP2:80 weight=5; } server { listen 80; server_name test3.aionlinefun.icu; location / { proxy_pass http://http123; } }
- 配置好之后,我们重载nginx配置或者输入
systemctl restart nginx
重启nginx服务。 - 接着我们进行访问
test3.aionlinefun.icu
。因为权重配置的是一样的,所以是第一次请求就会到达服务器1,第二次请求就会到达一次服务器2,依次轮询。 若配置的weight 不一样,则会按照对应的权重进行轮询请求 - 以上就是负载均衡的第一种策略,可以根据服务器不同的性能进行分配。还可以在weight后面输入关键字 down,backup。若输入down则证明该台机器不参与负载,请求无法到该台机器。若输入backup,则当只有其他机器挂掉的时候,才会访问到这台机器。
upstream httpd {
server 127.0.0.1:8050 weight=10 down;
server 127.0.0.1:8060 weight=1;
server 127.0.0.1:8060 weight=1 backup;
}
● down:表示当前的server暂时不参与负载
● weight:默认为1.weight越大,负载的权重就越大。
● backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。
- nginx还有很多种负载均衡策略,感兴趣的可以自己去试试。如下:
ip_hash
根据客户端的ip地址转发同一台服务器,可以保持回话。
least_conn
最少连接访问
url_hash
根据用户访问的url定向转发请求
fair
根据后端服务器响应时间转发请求
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力