四层负载均衡是基于传输层协议包来封装的(如:TCP/IP)
四层负载均衡应用场景:
1、四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性;如:nginx就无法保证自己的服务高可用,需要依赖LVS或者keepalive。
存在转发端口限制的问题
2、如:tcp协议的负载均衡,有些请求是TCP协议的(mysql、ssh),或者说这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡。
四层负载均衡总结 |
1、四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53;
2、四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口号)
3、四层负载均衡可以解决七层负载均衡高可用问题;(多台后端七层负载均衡能同事的使用)
4、四层的转发效率比七层的高得多,但仅支持tcp/ip协议,不支持http和https协议;
5、通常大并发场景通常会选择使用在七层负载前面增加四层负载均衡。
Nginx四层负载均衡场景实践 |
Nginx如何配置四层负载均衡
1、通过访问负载均衡的5555端口,实际是后端的web01的22端口在提供服务;
2、通过访问负载均衡的6666端口,实际是后端的mysql的3306端口在提供服务。
先配置两台lb负载均衡
步骤:
快速扩展LB02: 10.0.0.6
1.安装Nginx
[root@lb02 ~]#scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
[root@lb02 ~]#yum -y install nginx
2.同步LB01所有配置
[root@lb02 ~]# rsync -avz --delete 172.16.1.5:/etc/nginx/ /etc/nginx/
LB: 10.0.0.4 (新建了一个 testLB)
1.配置Nginx仓库
[root@lb ~]# scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
2.安装Nginx
[root@lb ~]# yum -y install nginx
3.配置Nginx四层负载
删除七层配置:
[root@lb nginx]# rm -rf /etc/nginx/conf.d/default.conf
cat /etc/nginx/nginx.conf
........
events {
worker_connections 1024;
}
stream {
include conf.c/*.conf;
}
http {
......
cd /etc/nginx
mkdir conf.c
[root@lb conf.c]# cat wordpress.conf
upstream hehe {
server 10.0.0.5:80;
server 10.0.0.6:80;
}
server {
listen 80;
proxy_pass hehe;
}
配置本机 host
访问: wordpress.baimei.com 正常访问
测试案例2: 跳板机 测试XSHELL
[root@lb conf.c]# cat web01.conf
upstream web01 {
server 172.16.1.7:22;
}
server {
listen 5555;
proxy_pass web01;
}
我们用 xshell 测试, 10.0.0.4 , 5555
总结: 如何配置一个 TCP 转发(类似跳板机)
配置环境:
单独 创建一个 conf.c 的文件夹
然后在 主配配置文件 nginx.conf 中 引入:
stream {
include conf.c/*.conf;
}
然后在 conf.c 文件夹中 建立配置文件:
欢迎来撩 : 汇总all