nginx 四层负载均衡

四层负载均衡

1、什么是四层负载均衡

所谓四层负载均衡,也就是主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器。
以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN 请求时,选择一个最佳的服务器,并对报文中目标IP地址进行修改(改为后端服务器IP),直接转发给该服务器。TCP的连接建立,即三次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由器的转发动作。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能还会对报文原来的源地址进行修改。

2、为什么要用四层负载均衡

在不使用http协议是我们通常要使用到四层负载均衡来实现、

3、应用场景

1.四层+七层来做负载均衡,四层可以保证七层的负载均衡的高可用性;
2.负载均衡可以做端口转发
3.数据库读写分离

4+7的应用场景

nginx 四层负载均衡

4、四层负载均衡特点

1.四层负载均衡仅能转发TCP/IP协议、UDP协议、通常用来转发端口,如:tcp/22、udp/53;
2.四层负载均衡可以用来解决七层负载均衡端口限制问题;(七层负载均衡最大使用65535个端口号)
3.四层负载均衡可以解决七层负载均衡高可用问题;(多台后端七层负载均衡能同时的使用)
4.四层的转发效率比七层的高得多,但仅支持tcp/ip协议,不支持http和https协议;
5.通常大并发场景通常会选择使用在七层负载前面增加四层负载均衡。

nginx 四层负载均衡

实现部署四层负载均衡

注意:四层负载均衡中不支持域名。

使用四层负载均衡,必须要有--with-stream模块
四层负载均衡和七层负载均衡很相似但是完全是两回事、
# 编辑配置文件
[root@lb01 ~]# vim /etc/nginx/nginx.conf
stream {

    include /etc/nginx/stream/*.conf;

}

nginx 四层负载均衡

#  创建配置文件目录:
[root@lb01 ~]# cd /etc/nginx/
[root@lb01 ~]# mkdir /stream
[root@lb01 ~]# cd /etc/nginx/stream
[root@lb01 stream]# vim mysql.conf   # 实现配置
server {
    listen 3306;
    proxy_pass 172.16.1.61:3306;
}
# 测试端口
[root@lb01 ~]# netstat -nutlp

nginx 四层负载均衡

#  测试
在192.165.15.61访问191.168.15.5的mysql 

nginx 四层负载均衡

案例

案例:使用四层负载均衡实现SSH的代理,端口为1122
[root@lb01 stream]# vim ssh.conf 
server {
    listen 1122;
    proxy_pass 172.16.1.5:22;   # ssh默认端口为22
}

nginx 四层负载均衡

#  测试 :测试机web01
[root@web01 ~]# ssh root@192.168.15.5 -p1122

nginx 四层负载均衡

连接成功

上一篇:【JAVA】集合的使用:约瑟夫问题


下一篇:JAVA 1.8 新特性 Stream