美文网首页
haproxy高可用负载均衡集群

haproxy高可用负载均衡集群

作者: fengkaipeng | 来源:发表于2017-09-09 20:39 被阅读62次

    haproxy是一个反向代理服务器,可以实现4层和7层的负载均衡。他自带强大的监控服务器状态的页面,监控起来相当方便,下面我们来用haproxy实现高可用的负载均衡集群,其架构如下图所示

    客户端访问vip,然后两台调度器哪台优先级高哪台取得vip,通过haproxy提供代理服务,通过调度算法找到后端的节点。
    实现步骤:
    1.部署nfs服务器

    [root@localhost ~]# yum -y install nfs-utils
    [root@localhost ~]# vim /etc/exports
    添加如下内容
    /usr/share/wordpress/ 172.16.200.103(rw,no_root_squash) 172.16.200.104(rw,no_root_squash)    #no_root_squash表示不压缩权限,在本地使用时权限仍然为root,不写这一条可能导致本地不能创建文件。
    [root@localhost ~]# service rpcbind start
    [root@localhost ~]# service nfs start
    [root@localhost ~]# exportfs -v    #检测共享成功
    

    然后下载wordpress安装包,解压到/usr/share/之下
    2.在两台节点服务器上部署lamp环境:
    (1)配置php和httpd

    [root@localhost ~]# yum -y install httpd php mysql-server php-mysql
    [root@localhost ~]# vim /var/www/html/index.php
    <?php
    phpinfo();
    ?>
    

    用浏览器访问http://172.16.200.103/index.php ,出现php页面证明php和httpd安装成功
    (2)挂载nfs文件系统:

    [root@localhost ~]# yum -y install nfs-utils
    [root@localhost ~]# mkdir /var/www/html/wordpress/
    [root@localhost ~]# mount 172.16.200.105:/usr/share/wordpress /var/www/html/wordpress/
    

    (3)然后配置mysql

    [root@localhost ~]# service mysqld start
    [root@localhost ~]# mysql_secure_installation     #运行mysql初始化程序,给root设置个密码,然后删除多余的用户和库
    [root@localhost ~]# mysql -u root -p    #输入密码后进入mysql
    mysql> create database wordpress;    #创建专用库
    mysql> grant all on wordpress.* to worduser@'172.16.%.%' identified by '123';    #创建并授权用户
    

    (4)
    完成后访问172.16.200.103/wordpress,出现wordpress设置页面,将在数据库中创建的库名和用户名密码输入,ip地址填写为当前lamp服务器的ip。然后下一步,这里会提示我们创建配置文件,我们在wordpress目录下创建这个文件,然后将内容粘贴进去:

    [root@localhost wordpress]# cd /var/www/html/wordpress/
    [root@localhost wordpress]# vim wp-config.php
    将网页中提示的文件内容粘贴进去就行,这里就不在显示文件内容了
    

    然后输入标题,输入网站用户名和密码,就进入到wordpress中了
    3.在两台调度器上安装haproxy服务,并配置文件。
    主配置文件/etc/haproxy/haproxy.cfg的格式如下
    配置段:
    global:全局配置段
    进程及安全配置相关的参数
    性能调整相关参数
    Debug参数
    proxies:代理配置段
    defaults:为frontend, listen, backend提供默认配置;
    fronted:前端,相当于nginx, server {}
    backend:后端,相当于nginx, upstream {}
    listen:同时拥前端和后端,一般将服务器状态页面部署进到这个段中。

    [root@localhost ~]# yum -y install haproxy
    [root@localhost ~]# vim /etc/haproxy/haproxy.cfg
    #找到frontend  main *:5000行,将这行和之后的内容都删除掉,自己定义以下内容
    frontend web    
            bind *:80
            default_backend     websrvs
    
    backend websrvs
                    balance roundrobin
                    server srv1 172.16.200.103:80 check
                    server srv2 172.16.200.104:80 check
    
    

    然后重启haproxy,测试
    4.部署keepalived
    在两台调度器上安装keepalived,然后部署
    这是第一台的配置

    [root@localhost ~]# yum -y install keepalived
    [root@localhost ~]# vim /etc/keepalived/keepalived.conf
    global_defs {
       notification_email {
        feng@mageedu.com
       }
       notification_email_from admin@mageedu.com
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id node1
       vrrp_mcast_group4 224.16.120.18
    }
    
    vrrp_script chk_haproxy {
        script "killall -o haproxy"
        interval 2
        weight -10
        fall 2
        rise 2
    }
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 16
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.200.100
        }
        track_script {
        chk_proxy
        }
    }
    
    

    这是第二台的配置

    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 16
        priority 95
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.200.100
        }
        track_script {
        chk_proxy
        }
    }
    

    相关文章

      网友评论

          本文标题:haproxy高可用负载均衡集群

          本文链接:https://www.haomeiwen.com/subject/ibpojxtx.html