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
    
  • 相关阅读:
    跳出iframe
    leetcode 225. Implement Stack using Queues
    leetcode 206. Reverse Linked List
    leetcode 205. Isomorphic Strings
    leetcode 203. Remove Linked List Elements
    leetcode 198. House Robber
    leetcode 190. Reverse Bits
    leetcode leetcode 783. Minimum Distance Between BST Nodes
    leetcode 202. Happy Number
    leetcode 389. Find the Difference
  • 原文地址:https://www.cnblogs.com/zhenxing06/p/12775659.html
Copyright © 2011-2022 走看看