负载均衡方式
1.四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性;如:nginx就无法保证自己的服务高可用,需要依赖LVS或者keepalive。
2.tcp协议的负载均衡,有些请求是TCP协议的(mysql、ssh),或者说这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡
四层负载均衡实践
1.加一台七层负载均衡lb02
1)准备lb02并安装nginx 2)同步lb01的配置到lb02
[root@lb01 ~]# scp -r /etc/nginx 172.16.1.8:/etc/
3)启动负载均衡服务器的nginx
[root@lb01 ~]# groupadd www -g 666
[root@lb01 ~]# useradd www -u 666 -g 666
[root@lb02 ~]# systemctl restart nginx
4)配置host切换到另一台负载均衡,访问页面 5)配置四层负载均衡
#配置主配置文件 包含四层负载配置文件
[root@lb03 ~]# vim /etc/nginx/nginx.conf
events {
... ...
}
include /etc/nginx/stream/*.conf;
http {
... ...
}
#创建包含配置文件的目录
[root@lb03 ~]# mkdir /etc/nginx/stream/
#配置四层负载均衡
[root@lb03 ~]# vim /etc/nginx/stream/stream.conf
stream {
upstream lb {
server 10.0.0.5:80; #四层负载均衡配置必须加端口;80也必须加
server 10.0.0.6:80;
}
server {
listen 80;
proxy_pass lb;
}
}
6)重启nginx
[root@lb03 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb03 ~]# systemctl restart nginx
#如果检测没有错误,重启报错,删除/etc/nginx/conf.d/ 下面的所有配置文件
#因为四层和七层不能同时使用
7)配置host验证四层访问服务器
报错:
1.无法访问此网站:host没有配置解析;nginx防火墙没有关闭;nginx没有启动;php配置错误;
8)配置四层负载均衡日志
[root@lb03 ~]# vim /etc/nginx/stream/stream.conf
stream {
log_format proxy '$remote_addr $remote_port - [$time_local] $status $protocol '
'"$upstream_addr" "$upstream_bytes_sent" "$upstream_connect_time"' ;
access_log /var/log/nginx/proxy.log proxy;
upstream lb {
server 10.0.0.5:80;
server 10.0.0.6:80;
}
server {
listen 80;
proxy_pass lb;
}
}
四层负载均衡实现TCP端口转发
1.用户访问服务器的5555端口,跳转到10.0.0.7的22端口
[root@lb03 ~]# vim /etc/nginx/stream/stream.conf
stream {
upstream ssh {
server 10.0.0.7:22;
}
server {
listen 5555;
proxy_pass ssh;
}
}
2.用户连接10.0.0.4的6666端口,可以访问数据库
[root@lb03 ~]# vim /etc/nginx/stream/stream.conf
stream {
upstream mysql {
server 10.0.0.51:3306;
}
server {
listen 6666;
proxy_pass mysql;
}
}
四层负载均衡总结
1、四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53;
2、四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口号)!!!!
3、四层负载均衡可以解决七层负载均衡单点故障问题;(多台后端七层负载均衡能同时的使用)
4、四层的转发效率比七层的高得多,但仅支持tcp/ip/udp协议,不支持http和https协议;
5、通常大并发场景通常会选择使用在七层负载前面增加四层负载均衡。