相关配置基于:轮循负载均衡
首先关闭防火墙service iptables stop
加权负载均衡
- nginx配置,找到自己nginx安装目录下的nginx.conf文件,我默认安装在
/usr/local/nginx/ 目录vim /usr/local/nginx/conf/nginx.conf
- 负载均衡的权重范围是1-10
- 负载均衡的权重值初始化是0,默认是1.
- 赋予服务器权重之后,谁的权重越大,分发到的请求就越多
upstream hello{
server node01; #默认权重为1
server node03 weight=3; #权重值为3,nginx偏向于将更多的请求分配给高权重值的服务器
}
最少连接负载均衡
- 轮询负载均衡会将请求均匀的分配给每台服务器
- 但是不同用户请求服务器的时间是不同的.\
- 如果用户数相同,但是其中一台服务器的用户请求时间都长于请求其他服务器的用户请求时间,那么该台服务器的负载是高于其他服务器的,哪怕分配给每台服务器的用户请求相同
- 最少连接负载均衡就适用于该情形,nginx会尽量避免将过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,进一步实现负载均衡.
修改nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
upstream hello{
least conn; # 加入该字段即可
server node01;
server node03;
}
会话持久性
- 循环负载均衡和最少连接负载平衡会产生一种情形,同一个用户的一次用户操作里,该用户的请求可能被分发到不同的服务器。
- 不能保证相同的客户端总是定向到相同的服务器。
- 将同一个用户的请求都绑定在初次被分配的相同服务器上,就要使客户端的会话“粘滞”或“持久” 。
- ip-hash负载均衡就是根据用户客户端的ip地址为散列键,确保同意ip的用户的请求始终访问同一台服务器。
修改nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
upstream hello{
ip_hash; # 加入该字段即可
server node01;
server node03;
}
Nginx的访问控制
- Nginx可以对ip的访问控制
- allow代表放行
- deny代表禁止
修改nginx.conf文件
vim /usr/local/nginx/conf/nginx.conf
location / { # 1. = 192.168.xx.xx/[项目名称]
deny 192.168.2.180;
allow 192.168.78.0/24;
allow 10.1.0.0/16;
allow 192.168.1.0/32;
deny all;
proxy_pass http://hello; #2. 访问路径,指向upstream
}
程序执行,会首先拦截了192.168.2.180这个ip的用户
78网段的所有用户,执行到第一个allow时被放行,接下来该代码块的方法不再执行.其他用户继续执行
192.168开头的用户被放行,结束.不满足条件的继续执行
符合ipv6条件的被放行.
剩余不满足上述条件的,全部会被拦截.