前言
在此只介绍一些nginx的简单的负载均衡。
正文
在这篇之前,请看我的nginx反向代理这一篇,是接着上面的例子写的。
我在上个例子中,分别是两个a.html 和 b.html 现在我把他们的名字全部改成b.html,且文件夹都是b.
接来下来做负载均衡。
修改一下配置:
upstream mynginx{
server 127.0.0.1:8081;
server 127.0.0.1:8080;
}
server{
listen 9080;
server_name www.9080.com;
index index.html index.htm index.php;
location /
{
proxy_pass http://mynginx;
}
}
首先定义了一个虚拟地址mynginx,也叫上游服务哈。
然后将端口9080转发给了虚拟地址。
可以看到,它对两个服务交替访问,也称作为轮询。
好吧,看下其他几种方式。
1.每个请求按照时间顺序分配到不同服务器上去,如果有一台服务器出现问题,则会剔除。
存在的问题,session问题。
2.weight 权重
这个代表什么呢?如果weight值越多,那么分配的比例越大。
upstream mynginx{
server 127.0.0.1:8081 weight 10;
server 127.0.0.1:8080 weight 20;
}
那么weight 越大,那么分配的连接数越大。
- ip hash的方式
我在的公司的老代理就是用的这种。
这种是什么意思呢?
就是说比如我的ip是某某,是固定的,那么就会固定分配到某台服务器。
存在的问题:比如说一个片区用的是同一个ip那么会负载不均衡。
这样写:
upstream mynginx{
ip_hash
server 127.0.0.1:8081 weight 10;
server 127.0.0.1:8080 weight 20;
}
4.fair 方式
就是说你那台服务器响应的越快分配的就越多。
upstream mynginx{
server 127.0.0.1:8081 weight 10;
server 127.0.0.1:8080 weight 20;
fair
}