一、四层负载均衡
1.F5硬负载均衡
2.LVS四层负载均衡
3.Haproxy四层负载均衡
4.Nginx四层负载均衡
二、七层负载均衡
1.Nginx七层负载均衡
2.Haproxy七层负载均衡
3.apache七层负载均衡
七层负载均衡基本处理http协议的用于web服务器如tomcat,四层负载均衡主要处理tcp,udp协议。
三、DNS地域负载均衡
根据服务器ip,就近原则,提高访问速度
四、Nginx构建Tomcat集群
注:我采用的是虚拟机
1.
nginx服务器地址: 192.168.152.131
第一台tomcat服务器地址:192.168.152.132
第二台tomcat服务器地址:192.168.152.130
第三台tomcat服务器地址:192.168.152.133
2.在nginx的配置文件加入以下配置
upstream tomcats {
server 192.168.152.133:8080;
server 192.168.152.130:8080;
server 192.168.152.132:8080;
}
server {
listen 80;
server_name 192.168.152.131;
location / {
proxy_pass http://tomcats;
}
}
3.启动nginx服务器访问:192.168.152.131:80即可访问到tomcat服务器
五、负载均衡-轮询
1.nginx默认测虐(硬件配置一样的条件下)
六、负载均衡-加权轮询
1.硬件越好,处理请求越多,通过权重配置。
weight数值越小,权重越低
upstream tomcats {
server 192.168.152.133:8080 weight=1;
server 192.168.152.130:8080 weight=2;
server 192.168.152.132:8080 weight=5;
}
server {
listen 80;
server_name 192.168.152.131;
location / {
proxy_pass http://tomcats;
}
}
七、upstream 指令参数
1.max_conns:用于限制一台服务器最大连接数(限流)
upstream tomcats {
server 192.168.152.133:8080 max_conns=2;
server 192.168.152.130:8080 max_conns=2;
server 192.168.152.132:8080 max_conns=2;
}
2.slow_start:缓慢启动
upstream tomcats {
server 192.168.152.133:8080 weight=6 slow_start=60s;
server 192.168.152.130:8080 weight=2;
server 192.168.152.132:8080 weight=2;
}
3.down:标识为服务器不可用的状态
upstream tomcats {
server 192.168.152.133:8080 down;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
}
4.backup:表示该服务器为备用机,待其他服务器宕机以后在使用
upstream tomcats {
server 192.168.152.133:8080 backup;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
}
5.max_fails
6.fail_timeout
八、使用keepalive提高吞吐量
keepalive :长连接配置
upstream tomcats {
server 192.168.152.133:8080;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
keepalive 32;
}
server {
listen 80;
server_name 192.168.152.131;
location / {
proxy_pass http://tomcats;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
九、负载均衡-ip_hash
1.hash算法:hash(ip)% node_counts=index
upstream tomcats {
ip_hash;
server 192.168.152.133:8080;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
}
server {
listen 80;
server_name 192.168.152.131;
location / {
proxy_pass http://tomcats;
}
}
hash算法带来的问题:当服务器增加或者减少时,会重新进行计算,那么用户在之前服务器的会话会全部丢失并且相应的缓存也会请求不到,照成用户请求时间增大。如何解决呢,采用一致性哈希算法
十、负载均衡 - url_hash
upstream tomcats {
hash $request_uri;
server 192.168.152.133:8080;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
}
十一、负载均衡 - least_conn
1.哪台服务器的连接数少就访问哪台
upstream tomcats {
least_conn;
server 192.168.152.133:8080;
server 192.168.152.130:8080 ;
server 192.168.152.132:8080 ;
}