lvs(DR模式)+squid缓存

1、准备5台服务器,1台做lvs,2台做squid,2台做web服务器

2、关闭5服务器的iptables 、selinuc、NetworkManager

3、将5台机器的IP地址改成静态,修改hostname,并将IP和主机名写进/etc/hosts文件

4、先搭建lvs

搭建方法:

 a、安装依赖包:yum -y install kernel-devel make gcc openssl-devel libnl* popt*

 b、解压LVS包:tar -zxvf ipvsadm-1.26.tar.gz  -C /usr/src/

 c、编译安装LVS包:cd /usr/src/ipvsadm-1.26 ,执行make && make install

 d、解压高可用软件keepalived:tar -zxvf keepalived-1.2.16.tar.gz -C /usr/src/

 e、编译安装keepalived包:cd /usr/src/keepalived-1.2.16,

        执行:./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/

扫描二维码关注公众号,回复: 161090 查看本文章

        再执行:make && make install

        将启动文件和配置文件复制到指定位置:

        cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

        cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

        mkdir /etc/keepalived

        cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

        cp /usr/local/sbin/keepalived /usr/sbin/

 f、修改/etc/keepalived.conf配置文件,达到高可用状态

        vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs {

   router_id LVS_MASTER               #主写LVS-MASTER,备写LVS-BACKUP

}vrrp_instance VI_1 {

    state MASTER               #主写MASTER,备写BACKUP

    interface eth0             #必须是本机的有效网卡

    virtual_router_id 51

    priority 100               #优先级权值,主的值比备的要高

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.108.200               #虚拟VIP

    }

}

virtual_server 192.168.108.200 80 {

    delay_loop 6

    lb_algo rr         #高度算法,rr是轮询算法

    lb_kind DR         #集群模式,这里是NAT模式

    persistence_timeout 50

    protocol TCP#(使用代理就用代理ip) 

  real_server 192.168.108.101 80 {

        weight 1

        #HTTP_GET {

        TCP_CHECK {            #验证web服务器是否存在的方式

            connect_timeout 3  #连接超时时间,时间秒

            nb_get_retry 3     #失败后连接的次数

            delay_before_retry 3      #间隔时间

            connect_port 80

        }

    }#(使用代理就用代理ip)

    real_server 192.168.108.102 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

        }

    }

}

配置好后,启动keepalived服务:service keepalived restart

5、到两台squid缓存服务器上搭建squdi服务和lvs客户端启动脚本

 a、yum源安装squdi软件:yum -y install squid*

 b、修改squdi缓存文件达到缓存效果

        vim /etc/squid/squid.confhttp_access allow all                       #修改成允许所有

http_port 80 accel vhost vport #修改成监听80端口和支持反向代理模式

cache_dir ufs /var/spool/squid 256 16 256     #打开缓存目录的定义这一句

icp_port 3130          #icp端口

cache_peer 192.168.169.211 sibling 80 3130   #缓存服务器列表,如果A记录在其中1台,那么系统将会去这台取A记录

cache_peer 192.168.169.212 sibling 80 3130  #有代理的用代理ipcache_peer 192.168.169.200 parent 80 0 no-query originserver  round-robin name=web1

cache_peer 192.168.169.210 parent 80 0 no-query originserver round-robin name=web2

#cache_peer_domain  we1 web2

#cache_peer_domain web 192.168.169.201 #加上这三句,表示代理后台的35的8000端口;web.cluster.com为网站的域名,192.168.169.201为我这个架构最前端的nginx的IP c、创建缓存目录:squid -zX /var/spool/squid

 d、写lvs客户端启动脚本

        vim /opt/lvs-client.sh

#!/bin/bashLVS_VIP=192.168.108.200                   #绑定lvs的keepalived的虚拟ip

/etc/rc.d/init.d/functionscase "$1" in

start)

        /sbin/ifconfig lo:0 $LVS_VIP netmask 255.255.255.255 broadcast $LVS_VIP

        /sbin/route add -host $LVS_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 "LVS-RealServer Start OK"

        ;;

stop)

        /sbin/ifconfig lo:0 down

        /sbin/route del $LVS_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 "LVS-RealServer Stoped"

        ;;

*)

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

        exit 1

esac

exit 0

 e、给functions和脚本加执行权限

        chmod +x /etc/rc.d/init.d/functions

        chmod +x /opt/lvs-client.sh

 f、两台squdi服务器都执行lvs-client.sh脚本,再启动squid服务

        sh -x /opt/lvs-client.sh start

        sh -x /etc/init.d/squid start6、配置后端的两台web服务器

 a、yum安装httpd服务:yum -y install httpd*

 b、给http加一个访问文件内容:echo "web:192.168.108.103">/var/www/html/index.html

 c、两台服务器分别都启动httpd服务:service httpd restart

猜你喜欢

转载自my.oschina.net/u/3773647/blog/1635061
今日推荐