zoukankan      html  css  js  c++  java
  • Haproxy-1.8.20 编译安装:

    1 ) haproxy-1.8.20 :

    # 1.1 ) 安装Haproxy的依赖关系:
    yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools vim iotop bc  zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate systemd-devel -y
    
    # 1.2 ) 安装Haproxy-1.8.20 (注意编译参数) :
    tar xvf haproxy-1.8.20.tar.gz && cd haproxy-1.8.20
    make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/data/soft/haproxy
    
    # USE_CPU_AFFINITY=1 为开启haproxy进程与CPU核心绑定,
    # USE_SYSTEMD=1      为支持使用 -Ws参数(systemd-aware master-worker 模式)启动Haproxy,从而实现单主进程多子进程运行模式。
    
    make install PREFIX=/data/soft/haproxy
    cp haproxy /usr/sbin/
    
    # 1.3 ) 添加用户配置目录创建:
    mkdir /etc/haproxy
    useradd haproxy -s /sbin/nologin
    mkdir /var/lib/haproxy
    chown haproxy.haproxy /var/lib/haproxy/ -R
    systemctl restart haproxy
    
    # 1.4 ) 启动文件:
    vim /usr/lib/systemd/system/haproxy.service
    [Unit]
    Description=HAProxyLoad Balancer
    After=syslog.targetnetwork.target
    
    [Service]
    ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
    ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg 
    ExecReload=/bin/kill -USR2 $MAINPID
    
    [Install]
    WantedBy=multi-user.target
    
    
    # 1.5 ) 开机启动:
    systemctl enable haproxy
    systemctl restart haproxy
    
    # 1.6 )  配置路径:
    程序环境:
    主程序:       /usr/sbin/haproxy
    配置文件:     /etc/haproxy/haproxy.cfg
    Unit file:   /usr/lib/systemd/system/haproxy.service
    

    2 ) haproxy 配置:

    global
    maxconn 100000
    chroot /data/soft/haproxy
    stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
    uid 1000
    gid 1000
    daemon
    nbproc 2
    cpu-map 1 0
    cpu-map 2 1
    pidfile /usr/local/haproxy/run/haproxy.pid
    log 127.0.0.1 local3 info
    defaults
      option http-keep-alive
      option  forwardfor # ip地址透传 针对http 协议有效
      maxconn 100000
      mode http
      timeout connect 300000ms
      timeout client  300000ms
      timeout server  300000ms
    ##=======网站80入口=======================
    listen  server_hosts_group
      bind 10.10.50.119:80
      mode http
      server server1  10.10.29.207:80 weight 1 check inter 3s fall 2 rise 5
      server server2  10.10.4.209:80  weight 1 check inter 3s fall 2 rise 5
    
    #=======网站443入口=======================
    listen server_ssl_group
      bind 10.10.50.119:443
      mode tcp
      server server1  10.10.29.207:443 weight 1 check inter 3s fall 2 rise 5
      server server2  10.10.4.209:443  weight 1 check inter 3s fall 2 rise 5
    
    listen stats
      mode http
      bind 0.0.0.0:9800
      stats enable
      log global
      bind-process 2
      stats hide-version 
      stats uri     /sta
      stats auth    admin:q135235
    
    
    

    3 ) 使用 Haproxy 的epool模型方式1.8.x 新加入方式:

    # 3.1 ) 一个主进程,衍生出许多子进程,子进程的父PID就是主进程的PID. 启动的时候要用  -Ws  参数.
    
    [root@promi examples]# ps -ef | grep haproxy
    root     30869     1  0 18:52 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg
    nobody   30871 30869  0 18:52 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg
    nobody   30872 30869  0 18:52 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg
    nobody   30873 30869  0 18:52 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg
    nobody   30874 30869  0 18:52 ?        00:00:00 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg
    root     30878 29216  0 18:54 pts/0    00:00:00 grep --color=auto haproxy
    
    

    4 ) 各种配置:

    haproxy 主机组两种配置方法(listen,frontend):

    proxies:代理配置段
    defaults:为frontend, backend, listen提供默认配置
    frontend:前端,相当于nginx中的server {}
    backend:后端,相当于nginx中的upstream {}
    listen:同时拥有前端和后端配置
    
    defaults [<name>] #默认配置项,针对以下的frontend、backend和lsiten生效,可以多个name
    •frontend <name> #前端servername,类似于Nginx的一个虚拟主机server。
    •backend <name> #后端服务器组,等于nginx的upstream
    •listen <name> #将frontend和backend合并在一起配置
    •注:name字段只能使用”-”、”_”、”.”、和”:”,并且严格区分大小写,例如:Web和web是完全不同的两组服务器。
    
    # 第一种 Listen:
    #=======网站status入口=======================
    listen stats
      mode http
      bind 0.0.0.0:9800
      stats enable
      log global
      stats hide-version  # 隐藏版本号
      stats uri     /sta
      stats auth    admin:q312312
    
    ##=======网站80入口=======================
    listen  server_hosts_group
      bind 10.10.50.119:80
      mode http
      server server1  10.10.29.207:80 weight 1 check inter 3s fall 2 rise 5
      server server2  10.10.4.209:80  weight 1 check inter 3s fall 2 rise 5
    
    #=======网站443入口=======================
    listen server_ssl_group
      bind 10.10.50.119:443
      mode tcp
      server server1  10.10.29.207:443 weight 1 check inter 3s fall 2 rise 5
      server server2  10.10.4.209:443  weight 1 check inter 3s fall 2 rise 5
      
      
    # 第二种frontend :
    
    #=======网站80入口=======================
    frontend web_prot_80
      bind 0.0.0.0:80
      mode http
      use_backend web_port_http_nodes
    backend web_port_http_nodes
      mode http
      server server1  10.10.29.207:80 weight 1 check port 80 inter 3s fall 2 rise 5
      server server2  10.10.4.209:80  weight 1 check port 80 inter 3s fall 2 rise 5
    #=======网站443入口=======================
    frontend web_prot_443
      bind 0.0.0.0:443
      mode tcp
      use_backend web_port_https_nodes
    backend web_port_https_nodes
      mode tcp
      server server1  10.10.29.207:80 weight 1 check port 80 inter 3s fall 2 rise 5
      server server2  10.10.4.209:80  weight 1 check port 80 inter 3s fall 2 rise 5
      
      
     # 4.2 ) 后端服务器检测参数类型:
    check #对指定real进行健康状态检查,默认不开启
    addr IP#可指定的健康状态监测IP
    port num#指定的健康状态监测端口
    inter num#健康状态检查间隔时间,默认2000 ms
    fall num#后端服务器失效检查次数,默认为3
    rise num#后端服务器从下线恢复检查次数,默认为2
    weight #默认为1,最大值为256,0表示不参与负载均衡
    backup #将后端服务器标记为备份状态
    disabled #将后端服务器标记为不可用状态
    redirect prefix http://www.188faka.com/#将请求临时重定向至其它URL,只适用于http模式
    mbacklog axconn <maxconn>:当前后端server的最大并发连接数
    <backlog>:当server的连接数达到上限后的后援队列长度
    

    排错:

    问题:
          -DBUILD_OPTIONS='"USE_ZLIB=1 USE_CPU_AFFINITY=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_PCRE=1"' 
           -c -o src/haproxy.o src/haproxy.c
    src/haproxy.c:66:31: fatal error: systemd/sd-daemon.h: No such file or directory
     #include <systemd/sd-daemon.h>
                                   ^
    compilation terminated.
    make: *** [src/haproxy.o] Error 1
    
    解决: 
    yum install -y  systemd-devel
    
  • 相关阅读:
    C语言I博客作业04
    C语言I博客作业02
    The First Assignment
    蒟蒻的长链剖分学习笔记(例题:HOTEL加强版、重建计划)
    分治FFT模板
    [Ynoi2016]掉进兔子洞 题解
    蒟蒻首开博客园博客QwQ
    bzoj4320 homework 题解
    [ZJOI2016]小星星(容斥+dp)
    【scoi2009】围豆豆(最短路模型)
  • 原文地址:https://www.cnblogs.com/zhenxing06/p/12775659.html
Copyright © 2011-2022 走看看