lvs+keepalived+nginx负载搭建

LVS:(linux virtual server)是一款网络模型四层的负载软件,即IP+端口的转发模式,
LVS:提供三种负载方式:
VS/NAT:网络地址转化
VS/TUN:端
VS/DR:直接轮询模式
10种调度算法:常用的由一下几种:
rr:轮叫调度,不管每个服务器的实际情况
wrr :加权轮叫调度。
lc:最少链接调度
wlc:加权最少链接调度
环境如下:
操作系统:centos7
Lvs主调度器:192.168.65.128
备调度器:192.168.65.129
VIP:192.168.65.200
Real server1:192.168.65.150
Real server2:192.168.65.151

系统结构图如下:
lvs+keepalived+nginx负载搭建_第1张图片

LVS主备上面,配置linux系统内核参数开启内核的路由模式
vim /etc/sysctl.conf
net.ipv4.ip.forward = 1
立即生效

# sysctl -p 

所有服务器先暂时关闭iptables服务,避免影响服务搭建。

在主备服务器上安装LVS
选择yum或源码包的安装方式

#yum install ipvsadm
#wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
#tar –zxvf ipvsadm-1.26.tar.gz
#make && make install

对主备配置LVS,将请求分别轮询到150和151

#ipvsadmA 192.168.65.200:80s wrr  这里是加权轮询
#ipvsadma 192.168.65.200:80r 192.168.65.150:80gw 5
# ipvsadma 192.168.65.200:80r 192.168.65.150:80gw 5

为了使配置文件一直生效可以添加进配置文件中

Vim /etc/sysconfig/ipvsadm
ipvsadm –A 192.168.65.200:80 –s wrr  这里是加权轮询
ipvsadm –a 192.168.65.200:80 –r 192.168.65.150:80 –g –w 5  
 ipvsadm –a 192.168.65.200:80 –r 192.168.65.150:80 –g –w 5
#-g表示直接路由,-w表示权重的值

在主备服务器安装keepalived

#wget http://www.keepalived.org/software/keepalived-1.2.4.tar.gz
#tar –zxvf keepalived-1.2.4.tar.gz
#./configure –prefix=/usr/local/keepalived
#make && make install

将keepalived做成开启启动服务

#cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/

在主备配置keepalived.conf 主LVS上面的keepalived的配置文件

! Configuration File for keepalived
global_defs {
   notification_email {
   }
   router_id LVS_MASTER      //备LVS上面LVS_BACKUP
}
vrrp_instance VI_1 {
    state MASTER            //备LVS设置BACKUP
    interface eno16777736    //centos6设置为eth0
    virtual_router_id 51
    priority 150                //备LVS设置100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.65.200
    }
}

vrrp_server 192.168.65.200 80 {
    delay_loop  3
    lb_algo wrr
    lb_kind DR
    persistence_timeout 30
    protocol TCP
    real_server 192.168.65.200 80 {
        weight 3
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 192.168.65.200 80 {
        weight 3
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        } 
    }
}

安装nginx 下载需要的nginx的源码包

#wget http://nginx.org/download/nginx-xx.xx.tar.gz
#tar –zxvf nginx1.9.4.tar.gz
#./configure –prefix=/usr/local/nginx
#make && make install

配置real server服务器,两台nginx的服务器都一样,禁止arp相应的请求

Vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce =2

两台real server 配置虚拟网卡 新建ifcfg-lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0
BOOTPROTO=static
IPADDR=192.168.65.200
NETMASK=255.255.255.255
ONBOOT=yes

使配置生效:sysctl –p
为了区分两台real server服务器对nginx做如下配置
修改Real server1 和real server2

Vim nginx/html/index.html
<h1>Welcome to nginx!192.168.65.150h1>
<h1>Welcome to nginx!192.168.65.151h1>

分别启动服务
主备LVS : service ipvsadm start
Service keepalived start
Real server: service nginx start
测试在浏览器输入:192.168.65.200
任意一台服务器宕机,查看服务是否可用
lvs+keepalived+nginx负载搭建_第2张图片

你可能感兴趣的:(linux集群)