实验环境---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. Java面试题整理:这些Java程序员面试中经常遇见的题目,必须掌握才能有好结果

    1.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时 ...

  2. [Swift]LeetCode31. 下一个排列 | Next Permutation

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  3. 【Spark篇】---Spark故障解决(troubleshooting)

    一.前述 本文总结了常用的Spark的troubleshooting. 二.具体 1.shuffle file cannot find:磁盘小文件找不到. 1) connection timeout ...

  4. Django+Bootstrap+Mysql 搭建个人博客(四)

    4.1.博客分类 (1)blog_tags.py @register.simple_tag def get_categories(): return Category.objects.all() @r ...

  5. ELK快速搭建日志平台

    1.  抛砖引入 <Elasticsearch> <Logstash> <Filebeat> <Filebeat模块与配置> <Kibana> ...

  6. MVC从路由到Controller运行机制

    下图中每个箭头的左侧对应的右侧方法为对象调用方法的过程: 由于UrlRoutingModule这个HttpModule被注册到Web应用中,所有对每个抵达的请求来说,当代表当前应用的HttpAppli ...

  7. JS 中 原生方法 (一) --- 字符串

    目录 Javascript 中 str. arr.date.obj 等常见的原生方法总结 Javascript 中 str. arr.date.obj 等常见的原生方法总结 本文也说主要阐释了 Jav ...

  8. Solr 08 - 在Solr Web管理页面中查询索引数据 (Solr中各类查询参数的使用方法)

    目录 1 Solr管理页面的查询入口 2 Solr查询输入框简介 3 Solr管理页面的查询方案 1 Solr管理页面的查询入口 选中需要查询的SolrCore, 然后在菜单栏选择[Query]: 2 ...

  9. [Leetcode]237. Delete Node in a Linked List -David_Lin

    Write a function to delete a node (except the tail) in a singly linked list, given only access to th ...

  10. 【c#】RabbitMQ学习文档(五)Topic(主题。通配符模式)

    (本实例都是使用的Net的客户端,使用C#编写),说明,中文方括号[]表示名词. 在上一个教程中,我们改进了我们的日志记录系统. 没有使用只能够进行虚拟广播的[Fanout]交换机,而是使用了[Dir ...