实验环境---ubuntu16.04

四台机器:10.211.55.13—55.16

  • 具体实验环境配置如下:

    10.211.55.102  LVS_VIP

    10.211.55.13  LVS_MASTER

    10.211.55.14  LVS_SALVE

    10.211.55.15  WEB1

    10.211.55.16  WEB2

安装LVS与Keepalived

55.13(lvs master)做如下操作:

sudo apt install ipvsadm

sudo ipvsadm
 
sudo apt install keepalived -y
 
注意:配置文件目录/etc/keepalived/keepalived.conf,默认并没有配置文件,需要手动创建。
parallels@parallels-vm:~$ cat /etc/keepalived/keepalived.conf 
 
global_defs { 
 
    notification_email {  
 
        test@sina.com  
 
    }  
 
    notification_email_from admin@test.com 
 
    smtp_server 127.0.0.1 
 
    smtp_connect_timeout 30 
 
    router_id proxy1
 
 
 
 
vrrp_instance VI_1 { 
 
    state MASTER 
 
    interface enp0s5
 
 
    virtual_router_id 70 
 
    priority 90
 
    advert_int 1 
 
    authentication { 
 
        auth_type PASS 
 
        auth_pass 1111 
 
    } 
 
    virtual_ipaddress { 
 
        10.211.55.102 
 
    } 
 
 
 
 
virtual_server 10.211.55.102 8080 { 
 
    delay_loop 6 
 
    lb_algo rr  
 
    lb_kind DR 
 
    nat_mask 255.255.255.0 
 
    persistence_timeout 50 
 
    protocol TCP 
 
 
 
    real_server 10.211.55.15 8080 { 
 
        weight 1 
 
        TCP_CHECK { 
 
            connect_timeout 3 
 
            nb_get_retry 3 
 
            delay_before_retry 3 
 
        } 
 
    } 
 
 
 
    real_server 10.211.55.16 8080 { 
 
        weight 1 
 
        TCP_CHECK { 
 
            connect_timeout 3 
 
            nb_get_retry 3 
 
            delay_before_retry 3 
 
        } 
 
    } 
 
}
 
致此,master keepalived配置完毕.

打开ip forward功能:文件/etc/sysctl.conf

打开后修改里面“net.ipv4.ip_forward = 1”

执行如下命令使设置生效:

sudo sysctl -p

 
 
55.14(lvs slave)做如下操作:

sudo apt install ipvsadm

sudo ipvsadm
 
sudo apt install keepalived -y
 
注意:配置文件目录/etc/keepalived/keepalived.conf,默认并没有配置文件,需要手动创建。
parallels@parallels-vm:~$ cat /etc/keepalived/keepalived.conf 
 
bal_defs { 
 
    notification_email {  
 
        test@sina.com  
 
    }  
 
    notification_email_from admin@test.com 
 
    smtp_server 127.0.0.1 
 
    smtp_connect_timeout 30 
 
    router_id proxy2
 
 
 
 
vrrp_instance VI_2 { 
 
    state SLAVE
 
    interface enp0s5 
 
    virtual_router_id 70 
 
    priority 50
 
    advert_int 1 
 
    authentication { 
 
        auth_type PASS 
 
        auth_pass 1111 
 
    } 
 
    virtual_ipaddress { 
 
        10.211.55.102 
 
    } 
 
 
 
 
virtual_server 10.211.55.102 8080 { 
 
    delay_loop 6 
 
    lb_algo rr  
 
    lb_kind DR 
 
    nat_mask 255.255.255.0 
 
    persistence_timeout 50 
 
    protocol TCP 
 
 
 
    real_server 10.211.55.15 8080 { 
 
        weight 1 
 
        TCP_CHECK { 
 
            connect_timeout 3 
 
            nb_get_retry 3 
 
            delay_before_retry 3 
 
        } 
 
    } 
 
 
 
    real_server 10.211.55.16 8080 { 
 
        weight 1 
 
        TCP_CHECK { 
 
            connect_timeout 3 
 
            nb_get_retry 3 
 
            delay_before_retry 3 
 
        } 
 
    } 
 
}

打开ip forward功能:文件/etc/sysctl.conf

打开后修改里面“net.ipv4.ip_forward = 1”

执行如下命令使设置生效:

sysctl -p

接下来开启keepalived服务:LVS MASTER.    LVS  SLAVE都要操作如下:55.13  55.14

sudo systemctl start keepalived.service

查看keepalived进程:

[root@lvs keepalived-1.2.7]# sudo ps aux|grep keepalived

root     18485  0.0  0.0  42164   972 ?        Ss   11:43   0:00 keepalived -D

root     18486  0.0  0.2  46464  2376 ?        S    11:43   0:00 keepalived -D

root     18487  0.0  0.1  46340  1740 ?        S    11:43   0:00 keepalived -D

去master查看虚拟ip是否加上:注意如果虚拟ip没有自动加上,请重启下keepalived服务。虚拟ip :55.102(自定义)

parallels@parallels-vm:~$ ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 00:1c:42:41:65:f6 brd ff:ff:ff:ff:ff:ff

inet 10.211.55.13/24 brd 10.211.55.255 scope global dynamic enp0s5

valid_lft 1117sec preferred_lft 1117sec

inet 10.211.55.102/32 scope global enp0s5

valid_lft forever preferred_lft forever

inet6 fdb2:2c26:f4e4:0:2d91:9984:fe45:63ca/64 scope global temporary dynamic

valid_lft 602038sec preferred_lft 83527sec

inet6 fdb2:2c26:f4e4:0:e00e:d6:1c91:3bea/64 scope global mngtmpaddr noprefixroute dynamic

valid_lft 2591853sec preferred_lft 604653sec

inet6 fe80::5806:a54:e63b:90c0/64 scope link

valid_lft forever preferred_lft forever

上述显示55.102虚拟ip加上了!

接下里配置部署两台web服务器:

配置部署10.211.55.15 web1:

配置虚拟IP启动脚本:

parallels@parallels-vm:~$ pwd

/home/parallels

parallels@parallels-vm:~$ cat realserver.sh

#Written by :NetSeek http://www.linuxtone.org

VIP=10.211.55.102

. /lib/init/vars.sh

. /lib/lsb/init-functions

case "$1" in

start)

ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $VIP dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $VIP >/dev/null 2>&1

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

配置部署tomcat:

sudo apt-get install tomcat7 -y

启动tomcat服务:

sudo systemctl start tomcat7.service

为了测试负载均衡,我们将这个页面改下,以更好的标识这个网页是本服务器的

Tomcat7安装目录位于/usr/share/tomcat7,所以我们要编辑tomcat下的webapps/ROOT/index.html这个文件。

parallels@parallels-vm:/usr/share/tomcat7-root/default_root$ pwd

/usr/share/tomcat7-root/default_root

删掉此目录的index.html文件:sudo rm -f index.html

重新创建此目录的index.html文件,内容如下:

Sudo  touch /usr/share/tomcat7-root/default_root/index.html

parallels@parallels-vm:/usr/share/tomcat7-root/default_root$ cat index.html

web1 10.211.55.15

启动虚拟IP的脚本:

sudo sh realserver.sh start

去LVS_MASTER服务器的终端查看下ipvsadm,查看WEB1(55.15)服务器加到集群里:

sudo ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.211.55.102:8080 rr persistent 50

-> 10.211.55.15:8080             Route   1      0          0

上述可见:55.15已经加进来了!

此时我们访问网页http://10.211.55.15:8080,出现界面显示web1 10.211.55.15;或者使用命令行测试转发情况都可以查看。

配置部署10.211.55.16 web2:

配置虚拟IP启动脚本:

parallels@parallels-vm:~$ pwd

/home/parallels

parallels@parallels-vm:~$ cat realserver.sh

#Written by :NetSeek http://www.linuxtone.org

VIP=10.211.55.102

. /lib/init/vars.sh

. /lib/lsb/init-functions

case "$1" in

start)

ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $VIP dev lo:0

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

stop)

ifconfig lo:0 down

route del $VIP >/dev/null 2>&1

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

*)

echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

配置部署tomcat:

sudo apt-get install tomcat7 -y

启动tomcat服务:

sudo systemctl start tomcat7.service

为了测试负载均衡,我们将这个页面改下,以更好的标识这个网页是本服务器的

Tomcat7安装目录位于/usr/share/tomcat7,所以我们要编辑tomcat下的webapps/ROOT/index.html这个文件。

parallels@parallels-vm:/usr/share/tomcat7-root/default_root$ pwd

/usr/share/tomcat7-root/default_root

删掉此目录的index.html文件:sudo rm -f index.html

重新创建此目录的index.html文件,内容如下:

Sudo  touch /usr/share/tomcat7-root/default_root/index.html

parallels@parallels-vm:/usr/share/tomcat7-root/default_root$ cat index.html

Web2  10.211.55.16

启动虚拟IP的脚本:

sudo sh realserver.sh start

去LVS_MASTER服务器的终端查看下ipvsadm,查看WEB2服务器加到集群里:

sudo ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  10.211.55.102:8080 rr persistent 50

-> 10.211.55.15:8080            Route   1      0          0

-> 10.211.55.16:8080            Route   1      0          0

上述55.15 55.16两台web都已经加进来了

最后客户端测试:

浏览器输入:vip地址即10.211.55.102:8080

停掉其中一台keepalived,服务正常访问!

ubuntu16.04 部署配置LVS主从的更多相关文章

  1. centos6.3部署配置LVS主从

    LVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统.这个项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.它的官方网址 ...

  2. Ubuntu16.04 部署配置GO语言开发环境 & 注意事项

    1. 安装GO 安装go语言包: $ curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz   下载完成后 ...

  3. Ubuntu16.04安装配置和使用ctags

    Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本( ...

  4. Ubuntu16.04下配置ssh免密登录

    Ubuntu16.04下配置ssh免密登录 环境准备:新建两台虚拟机,而且两台虚拟机上都装有Ubuntu16.04的系统,使两台虚拟机之间保持互通状态.分别为两台虚拟机命名为A,B.假设我们要使A虚拟 ...

  5. 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

    前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署.当然你也可以参考本教程在自己的主机上部署该项目. Marbles 介绍 关于 Mar ...

  6. ubuntu16.04下配置JDK 1.8+安装Java EE,并实现最大子数组算法

    软工第二次作业: 1.在个人电脑中安装一个集成开发环境(Microsoft Visual Studio.Eclipse或其它工具均可),要求该环境能够提供单元自动测试功能: 2.记录安装过程,并将全部 ...

  7. Ubuntu16.04 安装配置Caffe

    Caffe已经是第三次安装配置了,为什么是第三次呢?因为我实在是低估了深度学习对于硬件的要求.第一次我在自己笔记本上配置的单核,CPU only ...  结果是,样例数据跑了4小时,这还怎么玩?第二 ...

  8. Linux入门(16)——Ubuntu16.04下配置sublime text 3使用markdown

    sublime text 3安装两个插件: MarkDown Editing OmniMarkupPreviewer 有的人使用 MarkDown Editing markdownpreviewer ...

  9. Ubuntu16.04安装配置sublime text3

    1.安装Sublime Text 3 首先添加sublime text 3的仓库: sudo add-apt-repository ppa:webupd8team/sublime-text-3 根据提 ...

随机推荐

  1. 最小化JIT示例(仅限Intel x86+Windows)

    #include <Windows.h> #include <cstdint> #include <cstring> #define BACK_FILL (0) i ...

  2. #Java学习之路——面试题

    (一)[基础知识梳理——JAVAse部分]Java中的变量和常量        在程序中存在大量的数据来代表程序的状态,其中有些数据在程序的运行过程中值会发生改变,有些数据在程序运行过程中值不能发生改 ...

  3. [Swift]LeetCode688. “马”在棋盘上的概率 | Knight Probability in Chessboard

    On an NxN chessboard, a knight starts at the r-th row and c-th column and attempts to make exactly K ...

  4. [Swift]LeetCode803. 打砖块 | Bricks Falling When Hit

    We have a grid of 1s and 0s; the 1s in a cell represent bricks.  A brick will not drop if and only i ...

  5. [Swift]LeetCode929. 独特的电子邮件地址 | Unique Email Addresses

    Every email consists of a local name and a domain name, separated by the @ sign. For example, in ali ...

  6. Spring Boot 最核心的 25 个注解,都是干货!

    学习和应用 Spring Boot 有一些时间了,你们对 Spring Boot 注解了解有多少呢?今天栈长我给大家整理了 Spring Boot 最核心的 25 个注解,都是干货! 你所需具备的基础 ...

  7. cmd命令窗口的快速选中复制黏贴

    右击"窗口标题栏",选择属性,进入属性面板: 在"选项"面板勾选编辑选项下的"快速编辑模式"; 点击确认. 这时鼠标左键就有了选中功能,可以 ...

  8. JVM基础系列第4讲:从源代码到机器码,发生了什么?

    在上篇文章我们聊到,无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外.那么对于 Java 语言来说,其从源代码到机器码,这中间到底发生了什么呢?这就是今天我们要聊的. 如下图所示,编译器可 ...

  9. HBase查询优化

    1.概述 HBase是一个实时的非关系型数据库,用来存储海量数据.但是,在实际使用场景中,在使用HBase API查询HBase中的数据时,有时会发现数据查询会很慢.本篇博客将从客户端优化和服务端优化 ...

  10. leetcode — single-number

    /** * Source : https://oj.leetcode.com/problems/single-number/ * * * Given an array of integers, eve ...