实验环境---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. [Swift]LeetCode350. 两个数组的交集 II | Intersection of Two Arrays II

    Given two arrays, write a function to compute their intersection. Example 1: Input: nums1 = [1,2,2,1 ...

  2. fiddler抓取https失败解决方案

    众所周知,Fiddler默认只能抓取到http请求,要抓取到https请求我们还需要FiddlerCertMaker插件的支持, 至于怎么使用fiddler抓https及插件的使用方式,大家可以去百度 ...

  3. Kubernetes因限制内存配置引发的错误

    今天对一个pod进行内存资源调整后, 一直卡在ContainerCreating的状态, 执行describe命令查看该 Pod 详细信息后发现如下 . [root@master-01 ~]# kub ...

  4. 如何更简单方便地执行SQL操作?

    现在公司使用mybatis作为DAL层的框架. 使用起来比较简单,使用xml进行SQL的书写,java代码使用接口执行. 但在写一些简单SQL的时候会显得非常繁琐: xml和java分离(设计上为了解 ...

  5. python连接Linux命令行

    #!/usr/bin/python # -*- coding: utf-8 -*- '''https://www.ibm.com/developerworks/cn/linux/l-cn-pexpec ...

  6. HTTPS 到底加密了什么?

    关于 HTTP 和 HTTPS 这个老生常谈的话题,我们之前已经写过很多文章了,比如这篇<从HTTP到HTTPS再到HSTS>,详细讲解了 HTTP 和 HTTPS 的进化之路,对的没错, ...

  7. 【JVM虚拟机】(3)---垃圾回收器

    垃圾回收器 收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现.收集器主要分三类:串行收集器.并行收集器以及并发收集器. 一.基础概念 1.并发和并行 a:并行(Parallel):指多条垃 ...

  8. 多机部署redis5.0集群环境

    redis5.0集群部署 一.集群介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation). Redis 集群不支持那些需要同时处理多个键的 Redi ...

  9. 【干货】基于Owin WebApi 使用OAuth2进行客户端授权服务

    前言:采用Client Credentials方式,即密钥key/password,场景一般是分为客户端限制必须有权限才能使用的模块,这和微信公众号开放平台很类似. 让用户通过客户端去获取自己的tok ...

  10. 近期编程总结(i think -1)

    随着“四则运算题”的不断升级,功能实现起来越来越难,需要的知识也越来越多.实现过程中,需要不断地查阅相关资料和与其他人讨论的实现方法. 四则运算2的产生,的确耗费了自己很多的精力,不过反思一下,在不断 ...