精华内容
下载资源
问答
  • haproxy 重启关闭停止

    千次阅读 2020-11-16 13:44:22
    停止haproxy # killall haproxy listen test bind 10.10.10.10:8081 #通过5673对m1和m2进行映射 option tcplog #记录TCP连接状态和时间 mode tcp server node1 10.10.10.10:15672 check inter 5s rise 2 fall ...

    启动haproxy

    ./haproxy -f haproxy.cfg
    

    停止haproxy

    # killall haproxy
    
    
    listen test
      bind 10.10.10.10:8081   #通过5673对m1和m2进行映射
    	option tcplog       #记录TCP连接状态和时间
    	mode tcp
      server node1 10.10.10.10:15672 check inter 5s rise 
    展开全文
  • Haproxy

    千次阅读 2021-01-04 00:36:22
    一.Haproxy介绍 HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机, 它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站 点, 这些站点通常又需要会话...

    一.Haproxy介绍

    HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案.HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理.HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上.

    二.服务安装

    实验环境:rhel7.6 selinux and iptables disabled
    实验主机: Load balancer: 172.25.2.1 server1 haproxy
    RS:172.25.2.2 server2 httpd
    172.25.2.3 server3 httpd

    172.25.2.1 172.25.2.4 haproxy+pacemaker
    172.25.2.250 真机 fence

    (一)负载均衡

    1.基本配置

    server1
    yum install haproxy -y
    vim /etc/haproxy/haproxy.cfg
    # Global settings
    #---------------------------------------------------------------------
    global
        # to have these messages end up in /var/log/haproxy.log you will
        # need to:
        #
        # 1) configure syslog to accept network log events.  This is done
        #    by adding the '-r' option to the SYSLOGD_OPTIONS in
        #    /etc/sysconfig/syslog
        #
        # 2) configure local2 events to go to the /var/log/haproxy.log
        #   file. A line like the following can be added to
        #   /etc/sysconfig/syslog
        #
        #    local2.*                       /var/log/haproxy.log
        #
        log         127.0.0.1 local2  #指定日志设备
        log loghost local2 info #指定日志类型,还有 err warning debug
        chroot      /var/lib/haproxy  #jail 目录
        pidfile     /var/run/haproxy.pid
        maxconn     4000  #并发最大连接数量
        user        haproxy  #用户
        group       haproxy  #组
        daemon  #后台运行
    
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    
    #---------------------------------------------------------------------
    # common defaults that all the 'listen' and 'backend' sections will
    # use if not designated in their block
    #---------------------------------------------------------------------
    defaults
        mode                    http  #默认使用 http 的 7 层模式 tcp: 4 层
        log                     global  
        option                  httplog  #http 日志格式
        option                  dontlognull  #禁用空链接日志
        option http-server-close  
        option forwardfor       except 127.0.0.0/8
        option                  redispatch  #当 client 连接到挂掉的机器时,重新分配到健康的主机
        retries                 3  #重试 3 次失败认为服务器不可用
        timeout http-request    10s
        timeout queue           1m
        timeout connect         10s  #连接超时
        timeout client          1m  #客户端超时
        timeout server          1m  #服务器端超时
        timeout http-keep-alive 10s
        timeout check           10s
        maxconn                 3000
    
        stats uri /status   #haproxy 监控页面
    #---------------------------------------------------------------------
    # main frontend which proxys to the backends
    #---------------------------------------------------------------------
    frontend  main *:80  #监听的实例名称,地址和端口
    #    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    #    acl url_static       path_end       -i .jpg .gif .png .css .js
    #
    #    use_backend static          if url_static
        default_backend             app
    
    #---------------------------------------------------------------------
    # static backend for serving up images, stylesheets and such
    #---------------------------------------------------------------------
    #backend static
    #    balance     roundrobin
    #    server      static 127.0.0.1:4331 check
    
    #---------------------------------------------------------------------
    # round robin balancing between the various backends
    #---------------------------------------------------------------------
    backend app
        balance     roundrobin
        server app1 172.25.2.2:80 check
        server app2 172.25.2.3:80 check
        
    systemctl start haproxy.service
    

    在这里插入图片描述

    2.并发数上限修改

    maxconn 4000 #并发最大连接数量
    系统限制需修改配置,最大文件数kernel>system>app

    vim /etc/security/limits.conf 
    haproxy         - #软硬不限       nofile          4096  #最后一行添加,即改即生效
    

    3.日志配置

    vim /etc/sysconfig/rsyslog
    SYSLOGD_OPTIONS="-r"
    

    根据/etc/haproxy/haproxy.cfg文件提示修改日志配置

    vim /etc/rsyslog.conf 
    # Provides UDP syslog reception  #UDP传输模式打开,接受 haproxy 日志
    $ModLoad imudp
    $UDPServerRun 514
    # Don't log private authentication messages!
    *.info;mail.none;authpriv.none;cron.none;local2.none    /var/log/messages
    local2.*                                                /var/log/haproxy.log  #定义日志文件位置
    
    systemctl restart rsyslog.service
    cat /var/log/haproxy.log
    

    在这里插入图片描述

    4.网页监控的密码登陆

    vim /etc/haproxy/haproxy.cfg
        stats uri /status  #监控页面地址 
        stats auth admin:westos  #管理帐号和密码
        stats refresh 5s #刷新频率
        
    systemctl restart haproxy.service 
    

    在这里插入图片描述

    5.haproxy的调度算法

    在这里插入图片描述

    6.动 静分离

    上传在server3,查看在server2
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    7.黑名单IP

    在这里插入图片描述

    8.IP重定向

    在这里插入图片描述

    9.读写分离的服务器

    在这里插入图片描述
    systemctl reload haproxy.service

    server2 server3
    yum install php -y
    cd /var/www/html/
    get upload  #已经制作好的php网页,可以上传图片
    cd upload/
    mv * ..
    cd ..
    vim upload_file.php  #更改上传图片大小控制
    systemctl restart httpd
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    (二)高可用集群

    1.haproxy+keepalived

    2.haproxy+pacemaker

    pacemaker是一个开源的高可用资源管理器(CRM),是一个集群资源管理器,位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递功能,要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方,Corosync可以实现HA心跳信息传输的功能.

    前面server1的负载均衡已经做好,接着做一下server4的,只需将配置修改和server1保持一致,全部关闭,并禁止开机自启.

    server4
    yum install haproxy -y
    scp root@172.25.2.1:/etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg
    systemctl disable --now haproxy.service
    
    server4
    ssh-keygen
    ssh-copy-id server1  #server1server4实现免密连接,方便控制
    
    server4 1
    一.安装与启用高可用集群套件
    vim /etc/yum.repos.d/rhel7.6.repo
    [rhel7.6]
    name=rhel7.6
    baseurl=http://172.25.2.250/rhel7.6
    gpgcheck=0
    
    [HighAvailability]  #高可用软件包
    name=HighAvailability
    baseurl=http://172.25.2.250/rhel7.6/addons/HighAvailability
    gpgcheck=0
    scp /etc/yum.repos.d/rhel7.6.repo server1:/etc/yum.repos.d/rhel7.6.repo
    
    yum install -y pacemaker pcs psmisc policycoreutils-python
    ssh server1 yum install -y pacemaker pcs psmisc policycoreutils-python
    systemctl enable --now pcsd.service
    ssh server1 systemctl enable --now pcsd.service
    
    passwd hacluster  #为hacluster用户设置密码,在两个server上使用相同的密码,同步corosync配置,或者在其他server上启动和停止集群
    ssh server1 "echo westos | passwd --stdin hacluster"
    
    二.Configure Corosync 
    pcs cluster auth server1 server4  #在任一节点上,使用pcs cluster auth作为hacluster用户进行身份验证
    pcs cluster setup --name mycluster server1 server4  #在同一个节点上创建mycluster集群,并同步corosync配置
    
    三.Pacemaker Tools  
    (一)使用群集shell简化管理,两种流行的命令行shell是pcs和crmsh
    (二)pcs #查看帮助
    pcs cluster help  #某一个命令的帮助
    pacemakerd --features  #版本
    
    四.启动并验证corosync(心跳传递服务)
    (一)pcs cluster start --all  #等效下面
    # systemctl start corosync.service  #Openais心跳
    # systemctl start pacemaker.service  #集群资源管理器
    pcs cluster enable --all  #开机自启
    (二)corosync-cfgtool -s  #检查心跳传递服务通信是否正常
    Printing ring status.
    Local node ID 1
    RING ID 0
    	id	= 172.25.2.1
    	status	= ring 0 active with no faults
    如果看到一些不同的情况,可能需要首先检查节点的网络、防火墙和selinux配置
    
    接着检查server1和server4的状态
    corosync-cmapctl | grep members
    [root@server1 haproxy]# pcs status corosync  #server1和4已经加入心跳
    Membership information
    ----------------------
        Nodeid      Votes Name
             1          1 server1 (local)
             2          1 server4
    
    五.验证Pacemaker(集群资源管理)
    [root@server1 haproxy]# ps auxf  #验证是否正在运行必要的进程
    root     15092  0.0  0.7 104264  7336 ?        Ss   1月02   0:05 /usr/sbin/pacemakerd -f
    haclust+ 15093  0.0  1.4 107604 15212 ?        Ss   1月02   0:05  \_ /usr/libexec/pacemaker/cib
    root     15094  0.0  0.7 107824  7444 ?        Ss   1月02   0:04  \_ /usr/libexec/pacemaker/sto
    root     15095  0.0  0.4  98820  4676 ?        Ss   1月02   0:06  \_ /usr/libexec/pacemaker/lrm
    haclust+ 15096  0.0  0.6 128028  6732 ?        Ss   1月02   0:04  \_ /usr/libexec/pacemaker/att
    haclust+ 15097  0.0  1.9 116632 20180 ?        Ss   1月02   0:04  \_ /usr/libexec/pacemaker/pen
    haclust+ 15098  0.0  1.1 181376 11420 ?        Ss   1月02   0:07  \_ /usr/libexec/pacemaker/crm
    pcs status  #如果进程正常,检查pcs状态输出
    WARNING: no stonith devices and stonith-enabled is not false  #出现此警告
    暂时禁用此功能,稍后再进行配置.**要禁用STONITH**,先将STONITH enabled 集群选项设置为false.
    pcs property set stonith-enabled=false
    crm_verify -LV  #检查报错
     
    六.创建主动/被动群集
    (一)浏览现有配置
    pcs status  #确保集群状态正常
    (二)添加资源
    pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.2.100 op monitor interval=30s  #添加VIP(新的地址),并让集群每30秒检查一次它是否正在运行  ocf:资源脚本所遵循的标准以及在何处执行  heartbeat:特定标准,提供脚本资源  IPaddr2:资源脚本的名称  op monitor:监控 interval=30s:监控频率
    pcs resource standards  #获取可用标准资源列表
    pcs resource providers  #获取可用资源提供程序的列表
    pcs resource agents ocf:heartbeat  ##查看某一个标准的所有资源程序(代理脚本)
    pcs node standby  #不让其调用集群管理资源
    pcs status  #再次查看
    (三)执行故障转移
    重启sever1后,服务仍然在server4接管(对于旧版本的pacemaker,集群可能会将IP移回其原始位置server1)
    

    在这里插入图片描述
    在这里插入图片描述

    (四)防止资源在恢复后移动
    在大多数情况下,需要防止健康资源在集群中移动,移动资源几乎总是需要一段的停机时间,对于像数据库这样的复杂服务,这个周期可能相当长.为了解决这个问题,Pacemaker提出了资源粘性的概念,它控制了一个服务在其所在位置保持运行的强度.
    
    七.接入haproxy资源
    1.systemctl disable --now haproxy #1 4都停止服务
    让pacemaker控制haproxy,创建systemd下的haproxy的启动脚本资源
    

    在这里插入图片描述
    因此需要建立资源管理组,约束资源,控制管理资源启动顺序,使其运行在一台服务器
    在这里插入图片描述

    2.如果VIP或者haproxy停止工作,那么集群就会自动添加VIP或者重启haproxy,在本地恢复.
    ip addr 查看
    3.如果网卡down,那么就会重启集群中的另一台(热备,备用机)
    如果此时server4网卡修好,那么会迅速接管server1,这样很不好,容易发生脑裂
    

    在这里插入图片描述
    在这里插入图片描述

    4.模拟内核崩溃
    server4断电重启即可恢复
    

    在这里插入图片描述

    5.Configure STONITH
    (1).STONITH保护数据不受恶意节点或意外并发访问的破坏
    Stonith 即shoot the other node in the head使Heartbeat软件包的一部分,该组件允许系统自动复位一个失败的服务器使用连接到一个健康的服务器的遥远电源设备,简单的说Stonith设备可以接受一台主机发来的信号从而切断不能传递心跳信息的节点电源,从而避免产生资源争用的设备;节点没有响应并不意味着它已经停止访问您的数据,要100%确保数据安全,唯一的方法是使用STONITH确保节点真正脱机,然后再允许从另一个节点访问数据
    STONITH还可以在集群服务无法停止的情况下发挥作用。在这种情况下,集群使用STONITH强制整个节点脱机,从而使在别处启动服务变得安全。
    (2).至关重要的是,STONITH设备能够允许集群区分节点故障和网络故障
    也可以使用远程电源开关(例如许多板载IPMI控制器),该开关与其控制的节点共享电源。如果在这种情况下出现电源故障,集群无法确定节点是否真的处于脱机状态,或者是否处于活动状态,并且存在网络故障,因此集群将停止所有资源,以避免可能出现的大脑分裂情况。同样,任何依赖于处于活动状态的机器的设备(例如有时在测试期间使用的基于SSH的“设备”)都是不合适的
    (3)为STONITH配置集群
    server1.server4
    yum install fence-virt -y  #安装fence
    [root@server4 ~]# pcs stonith list  或stonith_admin -I #列出fence设备
    fence_virt - Fence agent for virtual machines
    fence_xvm - Fence agent for virtual machines  #虚拟机
    
    真机172.25.2.250
    [root@xd cluster]# rpm -qa | grep fence  #安装所需软件
    libxshmfence-1.3-2.el8.x86_64
    fence-virtd-0.4.0-9.el8.x86_64  #fence服务
    fence-virtd-multicast-0.4.0-9.el8.x86_64  #网络监听器
    fence-virtd-libvirt-0.4.0-9.el8.x86_64  #后台
    
    fence_virtd -c  #注意网卡选桥接网卡
    mkdir /etc/cluster
    dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1  #密钥生成/dev/random是 Linux系统下的随机数生成器,它会从当前系统的内存中一个叫熵池的地址空间中根据系统中断来生成随机数
    systemctl restart fence_virtd.service  #先生成key,再启动服务
    
    [root@xd cluster]# netstat -anlp | grep :1229
    tcp        0      0 172.25.2.250:37276      172.25.2.1:1229         TIME_WAIT   -                   
    udp        0      0 0.0.0.0:1229            0.0.0.0:*                           82876/fence_virtd
    火墙允许或者直接关掉
    
    [root@server4 ~]# stonith_admin -M -a fence_xvm  #元数据
    <content type="string" default="/etc/cluster/fence_xvm.key"/> 
     <shortdesc lang="en">
            Shared key file (default=/etc/cluster/fence_xvm.key)   #虚拟机要使用key来连接真机
    因此:
    scp /etc/cluster/fence_xvm.key server4:/etc/cluster/fence_xvm.key
    scp /etc/cluster/fence_xvm.key server1:/etc/cluster/fence_xvm.key
    
    server1.server4  #将fence设备添加到集群
    mkdir /etc/cluster
    ssh server1 mkdir /etc/cluster
    pcs stonith create vmfence fence_xvm pcmk_host_map="server1:test1;server4:test4" op monitor interval=60s  #创建集群资源
    vmfence:名字  fence_xvm:类型 pcmk_host_map:映射(主机名和域名相对应)  op monitor interval=60s:监控频率60 fence通常启动在对端
    pcs property set stonith-enabled=true  #启用
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • HAProxy

    千次阅读 2017-11-16 16:45:29
    一、Haproxy概念 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。 二、安装...

    一、Haproxy概念
    HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。
    二、安装Haproxy
    下载地址:
    http://pkgs.fedoraproject.org/repo/pkgs/haproxy/

    tar -zxvf haproxy-1.7.9.tar.gz
    mv haproxy-1.7.9 haproxy
    cd haproxy
    make TARGET=linux26 prefix=/usr/local/haproxy
    make install PREFIX=/usr/local/haproxy

    TARGET:指定linux内核版本,通过:uname -a
    指定对目标操作系统在编译的时候进行优化,可选择如下值之一:
    linux22 for Linux 2.2
    linux24 for Linux 2.4 and above (default)
    linux24e for Linux 2.4 with support for a working epoll (> 0.21)
    linux26 for Linux 2.6 and above
    solaris for Solaris 8 or 10 (others untested)
    freebsd for FreeBSD 5 to 8.0 (others untested)
    openbsd for OpenBSD 3.1 to 4.6 (others untested)
    cygwin for Cygwin
    generic for any other OS.
    custom to manually adjust every setting
    如果目标系统不确定,则保持默认值generic即可。
    三、配置Haproxy
    Haproxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择作为配置。
    •global:参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改;
    •default:配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件;
    •frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的backend(可动态选择);
    •backend:后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器;
    •listen:Frontend和Backend的组合体。

    编写haproxy.cfg文件:

    #####全局配置#########

    global
    log 127.0.0.1 local0 #[日志输出配置,所有日志都记录在本机,通过local0输出]
    log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug]
    daemon #以后台形式运行harpoxy
    nbproc 1 #设置进程数量
    pidfile /home/haproxy/haproxy/conf/haproxy.pid #haproxy 进程PID文件
    ulimit-n 819200 #ulimit 的数量限制
    maxconn 4096 #默认最大连接数,需考虑ulimit-n限制
    #chroot /usr/share/haproxy #chroot运行路径
    uid 99 #运行haproxy 用户 UID
    gid 99 #运行haproxy 用户组gid
    #debug #haproxy 调试级别,建议只在开启单进程的时候调试
    #quiet

    ##默认配置############

    defaults
    log global
    mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    option httplog #日志类别,采用httplog
    option dontlognull #不记录健康检查日志信息
    retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置
    option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip
    option httpclose #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现
    #option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器,以后将不支持
    option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    maxconn 4096 #默认的最大连接数
    timeout connect 5000ms #连接超时
    timeout client 30000ms #客户端超时
    timeout server 30000ms #服务器超时
    #timeout check 2000 #心跳检测超时
    #timeout http-keep-alive10s #默认持久连接超时时间
    #timeout http-request 10s #默认http请求超时时间
    #timeoutqueue 1m #默认队列超时时间
    balance roundrobin #设置默认负载均衡方式,轮询方式
    #balance source # 设置默认负载均衡方式,类似于nginx的ip_hash
    #balnace leastconn #设置默认负载均衡方式,最小连接数

    ##统计页面配置########

    listen admin_stats
    bind 0.0.0.0:1080 #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
    mode http #http的7层模式
    option httplog #采用http日志格式
    #log 127.0.0.1 local0 err #错误日志记录
    maxconn 10 #默认的最大连接数
    stats refresh 30s #统计页面自动刷新时间
    stats uri /stats #统计页面url
    stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
    stats auth admin:admin #设置监控页面的用户和密码:admin,可以设置多个用户名
    stats auth Frank:Frank #设置监控页面的用户和密码:Frank
    stats hide-version #隐藏统计页面上HAProxy的版本信息
    stats admin if TRUE #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)

    ##设置haproxy 错误页面#####

    errorfile 403 /home/haproxy/haproxy/errorfiles/403.http
    errorfile 500 /home/haproxy/haproxy/errorfiles/500.http
    errorfile 502 /home/haproxy/haproxy/errorfiles/502.http
    errorfile 503 /home/haproxy/haproxy/errorfiles/503.http
    errorfile 504 /home/haproxy/haproxy/errorfiles/504.http

    ##frontend前端配置##############

    bind *:80
    #这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
    acl web hdr(host) -i www.abc.com
    #acl后面是规则名称,-i是要访问的域名,
    acl img hdr(host) -i img.abc.com
    如果访问www.abc.com这个域名就分发到下面的webserver 的作用域。
    #如果访问img.abc.com.cn就分发到imgserver这个作用域。
    use_backend webserver if web
    use_backend imgserver if img

    ##backend后端配置##############

    backend webserver #webserver作用域
    mode http
    balance roundrobin
    #banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
    option httpchk /index.html HTTP/1.0 #健康检查
    #检测文件,如果分发到后台index.html访问不到就不再分发给它
    server web1 10.16.0.9:8085 cookie 1 weight 5 check inter 2000 rise 2 fall 3
    server web2 10.16.0.10:8085 cookie 2 weight 3 check inter 2000 rise 2 fall 3
    #cookie 1表示serverid为1,check inter 1500 是检测心跳频率
    #rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重
    backend imgserver
    mode http
    option httpchk /index.php
    balance roundrobin
    server img01 192.168.137.101:80 check inter 2000 fall 3
    server img02 192.168.137.102:80 check inter 2000 fall 3

    ##tcp配置#################

    listen test1
    bind 0.0.0.0:90
    mode tcp
    option tcplog #日志类别,采用tcplog
    maxconn 4086
    #log 127.0.0.1 local0 debug
    server s1 10.18.138.201:80 weight 1
    server s2 10.18.102.190:80 weight 1

    四、启动
    启动服务:
    /home/haproxy/haproxy/sbin/haproxy -f /home/haproxy/haproxy/conf/haproxy.cfg
    重启服务:
    /home/haproxy/haproxy/sbin/haproxy -f /home/haproxy/haproxy/conf/haproxy.cfg -st cat /home/haproxy/haproxy/conf/haproxy.pid
    停止服务:
    killall haproxy

    五.监控
    访问:http://192.168.101.125:1080/stats

    配置参考:
    global
    log 127.0.0.1 local0
    log 127.0.0.1 local1 notice
    #log loghost local0 info
    maxconn 1000
    #uid 99
    #gid 99
    daemon
    #debug
    #quiet

    defaults
    log global
    mode http
    option httplog
    option dontlognull
    retries 3
    timeout connect 5000
    timeout client 50000
    timeout server 50000

    listen admin_stats
    bind 0.0.0.0:1080 #设置Frontend和Backend的组合体,监控组的名称,按需要自定义名称
    mode http #http的7层模式
    option httplog #采用http日志格式
    #log 127.0.0.1 local0 err #错误日志记录
    maxconn 10 #默认的最大连接数
    stats refresh 30s #统计页面自动刷新时间
    stats uri /stats #统计页面url
    stats realm XingCloud\ Haproxy #统计页面密码框上提示文本
    stats auth admin:admin #设置监控页面的用户和密码:admin,可以设置多个用户名
    stats auth Frank:Frank #设置监控页面的用户和密码:Frank
    stats hide-version #隐藏统计页面上HAProxy的版本信息
    stats admin if TRUE #设置手工启动/禁用,后端服务器(haproxy-1.4.9以后版本)

    listen web 0.0.0.0:8080
    cookie SERVERID insert indirect nocache
    balance roundrobin
    server app1_1 192.168.100.204:8081 cookie app1inst1 check inter 2000 rise 2 fall 5
    server app1_2 192.168.100.208:8081 cookie app1inst2 check inter 2000 rise 2 fall 5

    listen tcptest
    bind 0.0.0.0:5222
    mode tcp
    option tcplog #采用tcp日志格式
    balance source
    #log 127.0.0.1 local0 debug
    server s1 192.168.100.204:7222 weight 1
    server s2 192.168.100.208:7222 weight 1

    展开全文
  • haproxy

    2017-09-12 18:38:48
    1.安装haproxy(ubuntu server) 下载haproxy-1.7.9,并解压至home目录中(~/haproxy-1.7.9) 编译:make TARGET=Linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy target(OS内核版本)、arch(OS位数)、prefix(安装路径)...

    1.安装haproxy(ubuntu server)

    下载haproxy-1.7.9,并解压至home目录中(~/haproxy-1.7.9)

    编译:make TARGET=Linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy

    target(OS内核版本)、arch(OS位数)、prefix(安装路径)一定要大写,linux2.6以上的版本,我们都选择Linux26,查看内核版本:uname -a

    安装:sudo make install PREFIX=/usr/local/haproxy

    完成后再/usr/local/haproxy目录下生成以下目录:


    2.haproxy配置

    创建配置文件/etc/haproxy/haproxy.cfg

    global
        log               /dev/log              local1                     #[日志输出配置,所有日志都记录在本机,通过local0输出]
        log               /dev/log              local2              notice #定义haproxy 日志级别[error warringinfo debug]
        daemon                                                             #以后台形式运行harpoxy
        nbproc            1                                                #设置进程数量
        pidfile           /usr/local/haproxy/haproxy.pid
        user              haproxy
        group             haproxy
       maxconn           4096                                             #默认最大连接数,需考虑ulimit-n限制
        #chroot            /usr/local/haproxy
    
    defaults
        log               global
        mode              tcp                                              #默认的模式(tcp|http|health),tcp是4层,http是7层,health只会返回OK
        option            tcplog                                           #日志级别
        option            dontlognull                                      #不记录健康检查日志信息
        option            abortonclose                                     #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        option            redispatch                                       #serverId对应的服务器挂掉后,强制定向到其他健康的机器
        retries           3                                                #连接3次失败就认为是服务不可用
        timeout           connect                5000ms                    #连接超时
        timeout           client                 30000ms                   #客户端超时
        timeout           server                 30000ms                   #服务器超时
        timeout           check                  3000                      #心跳检测超时
    
    listen admin_stats
        bind              *:8060                                           #设置监听的IP地址和端口
        mode              http                                             #http的7层模式
        option            httplog                                          #采用http日志格式
        maxconn           10                                               #默认的最大连接数
        stats             refresh                30s                       #统计页面自动刷新时间
        stats             uri                    /stats                    #统计页面url
        stats             realm                  Haproxy Manager           #统计页面密码框上提示文本
        stats             auth                   admin:admin               #设置监控页面的用户和密码,可以设置多个
        stats             auth                   root:Password@1           #设置监控页面的用户和密码
        stats             hide-version                                     #隐藏统计页面上HAProxy的版本信息
        stats             admin if TRUE                                    #设置手工启动/禁用,后端服务器
    
    listen mysql_rcw_7706
        bind              *:7706
        mode              tcp
        option            tcplog
        balance           roundrobin
        option            tcp-check
        maxconn           2000
        log               /dev/log               local1               info
        server            mysql61 192.168.56.103:7002 maxconn 1024 check inter 2000 rise 2 fall 3
        server            mysql62 192.168.56.104:7002 maxconn 1024 check inter 2000 rise 2 fall 3
    
    listen mysql_rcr_7707
        bind              *:7707
        mode              tcp
        option            tcplog
        balance           roundrobin
        option            tcp-check
        maxconn           2000
        log               /dev/log               local1               info
        server            mysql61 192.168.56.103:7001 maxconn 1024 check inter 2000 rise 2 fall 3
        server            mysql62 192.168.56.104:7001 maxconn 1024 check inter 2000 rise 2 fall 3
    


    3.log配置

    在/etc/rsyslog.conf文件中添加:

    #haproxy

    local1.* /var/log/haproxy.log

    local2.* /var/log/haproxy/log

    在/etc/rsyslog.d/50-default.conf文件中找到 -/var/log/syslog行,在其前面key的末尾追加:

    ;local1.none;local2.none(注意分号表示local1、local2设备的日志信息不再记录于/var/log/syslog里)

    local1.* -/var/log/haproxy.log

    local2.* -/var/log/haproxy.log

    然后重启rsyslog服务:sudo service rsyslog restart


    4.启动/停止

    启动:/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg

    #!/bin/sh 
    
    HOME=/usr/local/haproxy
    DAEMON=$HOME/sbin/haproxy
    CONFIG=/etc/haproxy/haproxy.cfg
    DAEMON_ARGS="-f $CONFIG"
    DESC="HAProxy Daemon"
    
    echo "Starting $DESC, and use conf $DAEMON_ARGS"
    
    $DAEMON $DAEMON_ARGS

    停止:杀掉pidfile中的进程

    #!/bin/sh 
    
    DESC="HAProxy Daemon"
    PIDFILE=/usr/local/haproxy/haproxy.pid
    
    if test $PIDFILE
     then
       echo  "Stopping $DESC"
       if kill $(cat $PIDFILE)
       then
         echo "Stop OK"
       else
         echo "Stop Failed"
       fi
     else
       echo  "No $DESC running"
     fi

    展开全文
  • HAproxy

    2018-09-27 14:33:42
    -----client---------haproxy-------nginx1---------nginx2------192.168.1.250 192.168.1.1 192.168.1.10 192.168.1.20 一、安装Nginx[root@localhost ~]# yum -y install pcre-devel zlib-devel[root@localhost ~]...
  • Haproxy+keepalived(2)

    2017-11-09 22:45:18
    一、实现haproxy跨网段访问,要求172.17网段为公网网段,后端server为192.168.153网段,haproxy检测后端realserver是基于index.html内的内容,“ok”字段,并能够在haproxy停止时,切换VI1.实现haproxy跨网段访问,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,244
精华内容 2,497
关键字:

haproxy停止