HAProxy配置语法及实例
原创HAProxy配置语法及实例
HAProxy(High Availability Proxy)是一款高性能、高可靠性的反向代理和负载均衡器。它广泛应用于各种场景,如网站、应用服务器、数据库服务器等。本文将介绍HAProxy的配置语法及一些常用实例。
一、HAProxy配置文件概述
HAProxy的配置文件通常位于服务器的`/etc/haproxy`目录下,文件名为`haproxy.cfg`。配置文件由多个部分组成,首要包括以下几部分:
- 全局配置(global)
- 监听配置(listen)
- 前端配置(frontend)
- 后端配置(backend)
- 服务器配置(server)
二、全局配置(global)
全局配置部分定义了HAProxy的一些全局参数,如日志级别、最大连接数、工作模式等。
global
log 127.0.0.1 local0
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/run/haproxy_stats.sock level admin
在上面的配置中,我们设置了以下参数:
- `log 127.0.0.1 local0`:将日志发送到本地日志文件
- `maxconn 4000`:最大连接数为4000
- `user haproxy`:运行用户为haproxy
- `group haproxy`:运行用户组为haproxy
- `daemon`:以后台模式运行
- `stats socket /var/run/haproxy_stats.sock level admin`:开启统计功能,并设置访问级别为管理员级别
三、监听配置(listen)
监听配置部分定义了HAProxy监听的端口和协议,以及一些基本的参数。
listen stats :9876
mode http
stats uri /
stats realm Haproxy\ Statistics
stats auth admin:admin
在上面的配置中,我们设置了一个监听端口为9876的HTTP服务,并开启了统计功能。统计URL为`/`,访问控制要求用户名为`admin`,密码为`admin`。
四、前端配置(frontend)
前端配置部分定义了HAProxy需要处理的服务器请求,如请求的匹配规则、超时设置等。
frontend http
bind *:80
default_backend web
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
在上面的配置中,我们定义了一个名为`http`的前端,监听80端口。对于该端口的所有请求,默认将请求转发到名为`web`的后端。
五、后端配置(backend)
后端配置部分定义了需要负载均衡的服务器列表,以及一些负载均衡策略。
backend web
balance roundrobin
server web1 192.168.1.1:80 check
server web2 192.168.1.2:80 check
在上面的配置中,我们定义了一个名为`web`的后端,采用轮询算法进行负载均衡。其中,`web1`和`web2`是后端服务器的IP地址和端口号,`check`描述对服务器进行强健检查。
六、服务器配置(server)
服务器配置部分定义了单个服务器的详细信息,如IP地址、端口号、权重等。
server web1 192.168.1.1:80 weight 1 check
server web2 192.168.1.2:80 weight 1 check
在上面的配置中,我们定义了两个服务器`web1`和`web2`,它们的权重都为1,并开启强健检查。
七、实例:配置一个明了的反向代理
以下是一个明了的反向代理配置示例,将所有80端口的请求转发到后端服务器:
global
log 127.0.0.1 local0
maxconn 4000
user haproxy