记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。

keepalived配置VIP+宝塔BT面板nginx配置tcp负载均衡高可用方案

 

一,环境介绍。

1,主机配置。

主机:LB01,IP: 192.168.137.30,centos7,BT面板(只装nginx),Keepalived 是master角色. 

 主机:LB02,IP: 192.168.137.31,centos7,BT面板(只装nginx),Keepalived 是backup角色. 

docker主机:IP: 192.168.137.32,centos7,docker,安装2个nginx容器模拟2个web站点,如下:

192.168.137.32:8341 ,OA业务集群站点​ 

 192.168.137.32:8342, OA业务集群站点

VIP: 192.168.137.41, tcp负载端口 8001。

2,实现效果。

vip提供高可用,访问 192.168.137.41:8001端口时,转发到后端服务器192.168.137.32的8341与8342端口上。

当然你可以购买面板上面的商业收费功能,也是一样的效果。

二,keepalived主机配置。

1,LB01 master主机的keepalived.conf配置。

global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id tcp-1
}

vrrp_instance VI_1 {
    state MASTER
    nopreempt			#LB01故障恢复后不抢占vip
   #preempt_delay 30
    interface eth0
    virtual_router_id 55
    priority 150		# LB02的优先级数值要小于150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.137.41/24
    }   
}

 

2,LB02 backup主机的keepalived.conf配置。

global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id tcp-1
}

vrrp_instance VI_1 {
    state BACKUP
   #nopreempt			
   #preempt_delay 30
    interface eth0
    virtual_router_id 55
    priority 145		# LB02的优先级数值要小于150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.137.41/24
    }   
}

 

3,配置完成后,启动keepalived服务,查看vip使用情况。

 

三,宝塔面板配置tcp负载均衡

 

1,修改nginx的主配置文件内容。

需要打开配置文件/www/server/nginx/conf/nginx.conf,并添加以下内容。

主要是添加stream内容,再添加日志格式,tcp_format是日志名称。

再添加一个tcp负载均衡的配置文件加载目录。

具体如下:

    
stream {
    log_format tcp_format '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
    
  # access_log  /www/wwwlogs/tcp_access.log tcp_format ;
    open_log_file_cache off;
    #统一管理配置文件
    include /www/server/panel/vhost/nginx/tcp/*.conf;
}




2,创建tcp负载均衡的日志文件目录。

mkdir -p /www/wwwlogs/load_balancing/tcp 

3,创建tcp负载均衡的配置文件目录。

mkdir -p /www/server/panel/vhost/nginx/tcp

4,添加一个8001的tcp端口负载配置文件。

[root@node1 tcp]# cat tcp8001.conf
upstream tcp_8001 {
        server 172.189.19.30:8341 weight=1 max_fails=2 fail_timeout=10;
        server 172.189.19.30:8343 weight=1 max_fails=2 fail_timeout=10;
}

server {
    listen 192.168.137.41:8001;
    proxy_connect_timeout 8s;
    proxy_timeout 86400s;
    proxy_pass tcp_8001;
    access_log /www/wwwlogs/load_balancing/tcp/8001.log tcp_format;
}

5,重启面板的nginx服务

  /etc/init.d/nginx restart

四,测试tcp负载均衡效果

1,经检测tcp负载正常。




转载请标明出处【keepalived配置VIP+宝塔BT面板nginx配置tcp负载均衡高可用方案】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论