• HAproxy+keepalived+nginx实验部署


    目录

    部署Haproxy+keepalived

    一,配置主服务器(haproxy)

    1,关闭防火墙

      2,安装依赖环境

      3,编译安装haproxy

     4,haproxy服务配置文件修改

     2.keepalived配置

     二,备用服务器(haproxy)

    1,haproxy配置(和主服务器相同)

    2,keepalived配置

    三,nginx1服务器配置

    四,nginx2服务器配置

     五,访问测试(192.168.135.100)

    关闭主服务器后,漂移ip由备份服务器承担 ,继续工作


    部署Haproxy+keepalived

    一,配置主服务器(haproxy)

    根据上篇博客   操作,再添加一台haproxy服务器做(备用)边缘服务器,部署keepalived

    1,关闭防火墙

      2,安装依赖环境

    [root@haproxy ~]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make

      3,编译安装haproxy

    1. tar zxvf haproxy-1.6.9.tar.gz #解压安装包
    2. cd haproxy-1.6.9/ #进入解压目录
    3. make TARGET=linux2628 ARCH=x86_64 #进行编译
    4. (TARGET=linux2628 表示内核版本,使用uname -r查看内核,如:2.6.18-371.el5,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628
    5. (ARCH=x86_64 系统位数,现在基本都是64位)
    6. make install # 安

     4,haproxy服务配置文件修改

    [root@kya haproxy-1.5.19]#mkdir /etc/haproxy
    [root@kya haproxy-1.5.19]#cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/
    [root@kya haproxy-1.5.19]#cd /etc/haproxy/
    [root@kya haproxy]#ls
    haproxy.cfg

     删除将原来的listen配置项,添加新配置:
    listen webcluster 0.0.0.0:80
           option httpchk GET /index.html
           balance roundrobin
           server nginx1 192.168.135.90:80 check inter 2000 fall 3
           server nginx2 192.168.135.91:80 check inter 2000 fall 3
     

     5,添加haproxy系统服务 

    cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
    chmod +x /etc/init.d/haproxy
    chkconfig --add /etc/init.d/haproxy

    ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
    service haproxy start    或    /etc/init.d/haproxy start //如果ningx服务器未部署会提示找不到web服务器,可以等web部署完后再开启haproxy

    1. systemctl stop firewalld
    2. setenforce 0
    3. yum -y install gcc gcc-c++ make pcre-devel bzip2-devel
    4. tar zxvf haproxy-1.6.9.tar.gz
    5. cd haproxy-1.6.9/
    6. make TARGET=linux2628 ARCH=x86_64 #进行编译
    7. make install
    8. mkdir /etc/haproxy #创建haproxy目录
    9. cp examples/haproxy.cfg /etc/haproxy/ #将软件包中的配置文件模板复制到haproxy目录中
    10. cd
    11. vim /etc/haproxy/haproxy.cfg #修改haproxy.cfg配置参数
    12. 下面两项前面加上注释
    13. #chroot /usr/share/haproxy #固有目录,可注释掉
    14. #redispatch #当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证会话的SESSION持久性;而此时,如果后端的服务器宕掉了,但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常。需要注释掉
    15. 删除将原来的listen配置项,添加新配置:
    16. listen webcluster 0.0.0.0:80
    17. option httpchk GET /index.html
    18. balance roundrobin
    19. server nginx1 192.168.135.90:80 check inter 2000 fall 3
    20. server nginx2 192.168.135.91:80 check inter 2000 fall 3
    21. 优化服务启动:
    22. cp haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
    23. vi /etc/init.d/haproxy
    24. 修改:
    25. # chkconfig: 35 85 15
    26. chmod 755 /etc/init.d/haproxy
    27. chkconfig --add /etc/init.d/haproxy
    28. ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
    29. systemctl start haproxy

     2.keepalived配置

     
     yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
    yum -y install keepalived
     
     cp keepalived/etc/init.d/keepalived /etc/init.d ###加入系统管理服务
     systemctl enable keepalived.service ###设置开机自启动
     vi /etc/keepalived/keepalived.conf ###编辑配置文件


    删除原有配置,重新添加:

    ! Configuration File for keepalived
    global_defs {                   #全局参数
      router_id LVS_01            #指定名称,各个服务器名称要不一样
    }
    vrrp_instance VI_1 {            #指定vrrp热备参数
      state MASTER                 #服务器角色是master,备份服务器设置为BACKUP
      interface ens33               #修改物理网卡名称,默认是centos6的eth0 
      virtual_router_id 10          #组号相同
      priority 150                 #优先级,主服务器设置要大于备服务器
      advert_int 1
      authentication {
       auth_type PASS               #验证类型和密码,不建议修改
       auth_pass 123
    }
    virtual_ipaddress {
      192.168.135.100               #漂移地址(VIP)地址,可以有多个
     }
    }

    [root@haproxy2 ~]# systemctl start keepalived
    [root@haproxy2 ~]# ip addr
     

    yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
     

    yum -y install keepalived

    vim /etc/keepalived/keepalived.conf 

    删除原有配置,重新添加

    ! Configuration File for keepalived
    global_defs {                   #全局参数
      router_id LVS_01              #指定名称,各个服务器名称要不一样
    }
    vrrp_instance VI_1 {            #指定vrrp热备参数
      state MASTER                  #服务器角色是master,备份服务器设置为BACKUP
      interface ens33               #修改物理网卡名称,默认是centos6的eth0 
      virtual_router_id 10          #组号相同
      priority 150                  #优先级,主服务器设置要大于备服务器
      advert_int 1
      authentication {
       auth_type PASS               #验证类型和密码,不建议修改
       auth_pass 123
    }
    virtual_ipaddress {
      192.168.135.100               #漂移地址(VIP)地址,可以有多个
     }
    }

     二,备用服务器(haproxy)

    1,haproxy配置(和主服务器相同)

     systemctl stop firewalld
     setenforce 0
     yum -y install gcc gcc-c++ make pcre-devel bzip2-devel
    tar zxvf haproxy-1.6.9.tar.gz
     cd haproxy-1.6.9/
     make TARGET=linux2628 ARCH=x86_64     #进行编译
     make install


     mkdir /etc/haproxy   #创建haproxy目录
     cp examples/haproxy.cfg /etc/haproxy/  #将软件包中的配置文件模板复制到haproxy目录中
     cd
     vim /etc/haproxy/haproxy.cfg  #修改haproxy.cfg配置参数

    下面两项前面加上注释
    #chroot /usr/share/haproxy     #固有目录,可注释掉
    #redispatch       #当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证会话的SESSION持久性;而此时,如果后端的服务器宕掉了,但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常。需要注释掉

    删除将原来的listen配置项,添加新配置:
    listen webcluster 0.0.0.0:80
           option httpchk GET /index.html
           balance roundrobin
           server nginx1 192.168.135.90:80 check inter 2000 fall 3
           server nginx2 192.168.135.91:80 check inter 2000 fall 3


    优化服务启动:
    cp haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
     vi /etc/init.d/haproxy

    修改:
    # chkconfig: 35 85 15

     chmod 755 /etc/init.d/haproxy
     chkconfig --add /etc/init.d/haproxy
     ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
     systemctl start haproxy

    前面已经做过直接看keepalived配置

    2,keepalived配置

     yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel
    yum -y install keepalived
     
     cp keepalived/etc/init.d/keepalived /etc/init.d ###加入系统管理服务
     systemctl enable keepalived.service ###设置开机自启动
     vi /etc/keepalived/keepalived.conf ###编辑配置文件


    删除原有配置,重新添加:

    ! Configuration File for keepalived
    global_defs {                   #全局参数
      router_id LVS_02           #指定名称,各个服务器名称要不一样
    }
    vrrp_instance VI_1 {            #指定vrrp热备参数
      state BACKUP                 #服务器角色是master,备份服务器设置为BACKUP
      interface ens33               #修改物理网卡名称,默认是centos6的eth0 
      virtual_router_id 10          #组号相同
      priority 140                 #优先级,主服务器设置要大于备服务器
      advert_int 1
      authentication {
       auth_type PASS               #验证类型和密码,不建议修改
       auth_pass 123
    }
    virtual_ipaddress {
      192.168.135.100               #漂移地址(VIP)地址,可以有多个
     }
    }

    [root@haproxy2 ~]# systemctl start keepalived
    [root@haproxy2 ~]# ip addr

    yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

    yum -y install keepalived

    vim /etc/keepalived/keepalived.conf 

    删除原有配置,重新添加

    ! Configuration File for keepalived
    global_defs {                   #全局参数
      router_id LVS_02             #指定名称,各个服务器名称要不一样
    }
    vrrp_instance VI_2 {            #指定vrrp热备参数
      state BACKUP                  #服务器角色是master,备份服务器设置为BACKUP
      interface ens33               #修改物理网卡名称,默认是centos6的eth0
      virtual_router_id 10          #组号相同
      priority 140                  #优先级,主服务器设置要大于备服务器
      advert_int 1
      authentication {
       auth_type PASS               #验证类型和密码,不建议修改
       auth_pass 123
    }
    virtual_ipaddress {
      192.168.135.100               #漂移地址(VIP)地址,可以有多个
     }
    }

     

    三,nginx1服务器配置

    1. [root@nginx1 ~]# systemctl stop firewalld
    2. [root@nginx1 ~]# setenforce 0
    3. [root@nginx1 nginx-1.12.2]# cd
    4. [root@nginx1 ~]# echo "

      192.168.135.90

      "
      > /usr/local/nginx/html/index.html #创建首页内容
    5. [root@nginx1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin #优化启动项
    6. [root@nginx1 ~]# nginx
    7. [root@nginx1 ~]# netstat -anpt | grep nginx
    8. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 58600/nginx: master
    9. systemctl start nginx

    四,nginx2服务器配置

    1. [root@nginx1 ~]# systemctl stop firewalld
    2. [root@nginx1 ~]# setenforce 0
    3. [root@nginx1 nginx-1.12.2]# cd
    4. [root@nginx1 ~]# echo "

      192.168.135.91

      "
      > /usr/local/nginx/html/index.html #创建首页内容
    5. [root@nginx1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin #优化启动项
    6. [root@nginx1 ~]# nginx
    7. [root@nginx1 ~]# netstat -anpt | grep nginx
    8. tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 58600/nginx: master
    9. systemctl start nginx

     五,访问测试(192.168.135.100)

    关闭主服务器后,漂移ip由备份服务器承担 ,继续工作

     

     

     再次开启主服务器

  • 相关阅读:
    伪类应用——
    windows中python版本冲突问题之二
    埃夫特机器人更换编码器电池
    算法与数据结构学习
    Django REST framework API版本管理【通过GET参数传递】
    动态链接那些事
    七天学会C语言-第一天(C语言基本语句)
    早安心语早读:愿我们都能活成自己喜欢的样子
    Activity 的生命周期分析
    我们不一样①
  • 原文地址:https://blog.csdn.net/m0_54594153/article/details/126755702