前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HAProxy配置文件结构

HAProxy配置文件结构

作者头像
dys
发布2018-04-02 15:57:37
7780
发布2018-04-02 15:57:37
举报
文章被收录于专栏:性能与架构性能与架构

前面配置负载均衡的示例中,使用了一个简单的配置文件

global

daemon

maxconn 256

defaults

mode http

timeout connect 5000ms

timeout client 50000ms

timeout server 50000ms

frontend http-in

bind *:7000

default_backend neo4j

backend neo4j

server s1 127.0.0.1:8080 maxconn 32

server s2 127.0.0.1:8081 maxconn 32

listen admin

bind *:7080

stats enable

通过这个配置文件,我们来了解一下HAProxy配置文件结构

HAProxy配置文件主要由5个部分组成:

(1)global 部分

全局配置参数,属于进程级的配置,通常和操作系统配置有关

(2)defaults 部分

默认参数的配置部分,在此部分设置的参数值,默认会自动引用到下面的frontend、backend和listen部分中,如果在下面部分中也配置了与defaults部分一样的参数,那么defaults参数自动被覆盖

(3)frontend 部分

用于设置接收用户请求的前端虚拟节点,frontend可以根据ACL规则直接指定要使用的后端backend

(4)backend 部分

用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求

(5)listen 部分

此部分是frontend部分和backend部分的结合体。在HAProxy 1.3版本之前,HAProxy的所有配置选项都在这个部分中设置。为了保持兼容性,HAProxy新的版本仍然保留了listen组件的配置方式。目前在HAProxy中,两种配置方式任选其一即可

详细参数说明

global

daemon

maxconn 256

daemon:设置HAProxy进程进入后台运行。这是推荐的运行模式

maxconn:设定每个HAProxy进程可接受的最大并发连接数

defaults

mode http

timeout connect 5000ms

timeout client 50000ms

timeout server 50000ms

mode:设置HAProxy实例默认的运行模式,主要有tcp、http

tcp模式:在此模式下,工作在4层,客户端和服务器端之间将建立一个全双工的连接,不会对七层报文做任何类型的检查,默认为tcp模式

http模式:在此模式下,工作在7层,客户端请求在转发至后端服务器之前将会被深度分析

timeout connect:成功连接到一台服务器的最长等待时间,默认单位是毫秒

timeout client:连接客户端发送数据时最长等待时间,默认单位是毫秒

timeout server:服务器端回应客户端数据发送的最长等待时间,默认单位是毫秒

frontend http-in

bind *:7000

default_backend neo4j

定义了一个名为“http-in”的前端虚拟节点

bind:此选项只能在frontend和listen部分进行定义,用于定义一个或几个监听的套接字

bind的使用格式为: bind [<address>:<port_range>] interface <interface>

address为可选选项,其可以为主机名或IP地址,如果将其设置为“*”或“0.0.0.0”,将监听当前系统的所有IPv4地址。port_range可以是一个特定的TCP端口,也可是一个端口范围,interface为可选选项,用来指定网络接口的名称

default_backend:指定默认的后端服务器池,也就是指定一组后端真实服务器,而这些真实服务器组将在backend段进行定义

backend neo4j

server s1 127.0.0.1:8080 maxconn 32

server s2 127.0.0.1:8081 maxconn 32

这个部分通过backend关键字定义了一个名为neo4j的后端真实服务器组

server:这个关键字用来定义多台后端真实服务器,不能用于defaults和frontend部分。

使用格式为:server <name> <address>[:port] [param*]

<name>:为后端真实服务器指定一个名称,随便定义一个即可

<address>:后端真实服务器的IP地址或主机名

<port>:指定连接请求发往真实服务器时的目标端口。在未设定时,将使用客户端请求时的同一端口

[param*]:为后端服务器设定的一系列参数

listen admin bind *:7080 stats enable listen定义了一个名为“admin”的实例,其实就是定义了一个HAProxy的监控页面 bind 指定一个或几个监听的套接字 stats enable 设置为开启状态

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档