负载均衡方式

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、通常大并发场景通常会选择使用在七层负载前面增加四层负载均衡。
Copyright © 高程程 all right reserved,powered by Gitbook修订于: 2021-05-18 21:14:37

results matching ""

    No results matching ""