Haproxy配置文件详解

时间:2022-11-01 04:37:19

Haproxy是一款免费、稳定、高效的轻量级负载均衡软件,现将其配置文件参数作如下说明:

#全局配置参数

global                                     

        log 127.0.0.1 local3 info    #日志级别

        maxconn 4096

        user haproxy

        group haproxy

        daemon     #设置为后台进程

pidfile /usr/local/haproxy/haproxy.pid    #进程的pid文件


#默认配置,被frontend,backend,listen段继承使用

defaults                                   

        log global

        mode http    #Haproxy工作模式,四层工作模式为TCP

        option httplog

        option forwardfor    #使后端服务器获取客户端的真实IP

        option redispatch    #如果cookie中写入ServerID而客户端不会刷新Cookie,那么当ServerID对应的服务器宕机后,将强制定向到其它健康的服务器上

        option abortonclose    #当服务器负载过高时,将自动关闭队列中处理时间较长的连接请求

        cookie SERVERID    #允许向cookie中插入SERVERID,服务器的SERVERID在后端使用cookie关键字定义

        retries 3    #服务器连接失败后的重试次数

        maxconn 2000    #每个进程的最大连接数

        timeout connect 5000    #连接最大超时时间,默认毫秒

        timeout client 30000    #客户端最大超时时间

        timeout server 30000    #服务端超时时间


#定义Haproxy监控

listen haproxy_stats                       

        bind 0.0.0.0:8080

        mode http

        log global

        stats enable

        stats refresh 5s    #页面刷新间隔为5s

        stats realm Haproxy\ Statistics

        stats uri /haproxy_stats    #监控页面的URL

        stats hide-version

        stats auth haproxy:abc-123    #指定监控页面登陆的用户名和密码


#定义客户端访问的前端服务器

frontend haproxy_web                       

        bind 0.0.0.0:80    #定义监听的套接字

        mode http

        log global

        option httplog    #启用http日志

        option httpclose    #每次请求完毕后,关闭http通道

        acl php_web path_end .php    #定义一个名叫php_web的acl策略,当请求的url以.php结尾时会被匹配到

        use_backend php_server if php_web    #如果条件满足策略php_web时,则将请求交给后端的php_server服务器

        default_backend servers    #设置默认的后端服务器组


#定义后端服务器组

backend servers                            

        mode http

        option httpchk GET /index.html    #开启对后端服务器的健康检查,通过检查index.html文件来判断服务器的健康状况

        balance roundrobin    #负载均衡算法为轮询,

#对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续3次健康检查失败,则认为服务器宕机

        server web1 192.168.154.162:80 check inter 2000 rise 2 fall 3  

        server web2 192.168.154.156:80 check inter 2000 rise 2 fall 3


backend php_server

mode http

option httpchk GET /index.php

server web3 192.168.154.158:80 cookie web3 check inter 2000 rise 2 fall 3 weight 2


本文出自 “一万年太久,只争朝夕” 博客,请务必保留此出处http://zengwj1949.blog.51cto.com/10747365/1898113