• 集群-架构


    2台虚拟机

    [root@linux-node1 ~]# rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

    [root@linux-node1 ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump nc mtr nmap gcc glibc gcc-c++ make haproxy keepalived nginx  psmisc

    vim /etc/haproxy/haproxy.cfg

    global
    maxconn 100000
    chroot /var/lib/haproxy
    user haproxy
    group haproxy
    daemon
    nbproc 1
    pidfile /usr/local/haproxy/logs/haproxy.pid
    log 127.0.0.1 local3 info
    
    defaults
    option http-keep-alive
    maxconn 100000
    mode http
    timeout connect 5000ms
    timeout client  50000ms
    timeout server 50000ms
    
    listen stats
    mode http
    bind 0.0.0.0:8888
    stats enable
    stats uri     /haproxy-status
    stats auth    haproxy:saltstack
    
    frontend frontend_www_example_com
    bind 10.240.17.100:80
    mode http
    option httplog
    log global
        default_backend backend_www_example_com
    
    backend backend_www_example_com
    option forwardfor header X-REAL-IP
    option httpchk HEAD / HTTP/1.0
    balance source
    server web-node1  10.240.17.100:8080 check inter 2000 rise 30 fall 15
    server web-node2  10.240.17.103:8080 check inter 2000 rise 30 fall 15
    

    [root@node1 www]# systemctl restart haproxy

    [root@node1 www]# mkdir /data/www/www -p

    [root@node1 www]# echo "node1" /data/www/www/index.html

    [root@node1 www]# vim /data//ops/app/tengine-2.1.0/conf/vhost.default.conf 

    server {
            listen 8080;
            location / {
                root /data/www/www;
                index index.html index.htm;
            }
            error_log    logs/error_www.abc.com.log error;
            access_log    logs/access_www.abc.com.log    main;
    }
    

    [root@node2 www]# systemctl restart haproxy

    [root@node2 www]# mkdir /data/www/www -p

    [root@node2 www]# echo "node2" /data/www/www/index.html

    [root@node2 www]# vim /data//ops/app/tengine-2.1.0/conf/vhost.default.conf 

    server {
            listen 8080;
            location / {
                root /data/www/www;
                index index.html index.htm;
            }
            error_log    logs/error_www.abc.com.log error;
            access_log    logs/access_www.abc.com.log    main;
    }
    

    网友访问发现一直是访问node2因为haproxy配置文件定义了 balance source 根据源IP算法来访问的,如果想轮训改成 roundrobin

    yum install keepalived

    vim /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived
    global_defs {
       notification_email {
         saltstack@example.com
       }
       notification_email_from keepalived@example.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id haproxy_node1
    }
    
    vrrp_instance haproxy_ha {
    state MASTER
    interface em1
        virtual_router_id 36
    priority 150
        advert_int 1
    authentication {
    auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
           10.240.17.222
        }
    }
    

    [root@node1 ~]# echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind 

    [root@node1 ~]# vim /etc/haproxy/haproxy.cfg 

    bind 10.240.17.222:80

    [root@node1 ~]# systemctl start keepalived

    [root@node1 ~]# systemctl reload haparoxy

    ###

    [root@node2 ~]# yum install keepalived -y 

    ! Configuration File for keepalived
    global_defs {
       notification_email {
         saltstack@example.com
       }
       notification_email_from keepalived@example.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id haproxy_node2
    }
    
    vrrp_instance haproxy_ha {
    state BACKUP
    interface em1
        virtual_router_id 36
    priority 100
        advert_int 1
    authentication {
    auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
           10.240.17.222
        }
    }
    

    [root@node2 ~]# vim /etc/haproxy/haproxy.cfg 

    bind 10.240.17.222:80

    [root@node2 ~]# echo 1 >  /proc/sys/net/ipv4/ip_nonlocal_bind

    [root@node2 ~]# /etc/init.d/haproxy restart

    [root@node2 ~]# /etc/init.d/keepalived restart

    然后用网页访问VIP,发现node1 keepalived停了虚IP飘逸到node2了,如果实现切换就写检查脚本

    ###

    灾难恢复    根据信息系统灾难恢复规范来定义级别。

    1.核心业务,非核心业务

    2.从重要数据到非重要数据

    3.从下往上

    4.灾备演练

    5.徘徊在冷备和双活之间

  • 相关阅读:
    2017-4-25 winform公共控件属性 菜单和工具栏属性
    2017-4-24 winform窗体基础属性 ico图片生成 不规则窗体的移动 恶搞小程序
    2017-4-23 知识补充
    C# 动态方法和静态方法的区别 (转)
    2017-4-21 Ado.net字符串攻击 防御 实体类 数据访问类 属性扩展 三层架构开发
    ToString()用法 select top 子句
    2017-4-19 ado.net 增,删,改,查,练习
    2017-4-17 类库 通用变量 is和as运算符 委托
    2017-4-16 多态 构造函数 方法重载 静态方法和静态成员
    【2017-03-12】SQL Sever 子查询、聚合函数
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/9175149.html
Copyright © 2020-2023  润新知