HAProxy配置文件结构

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

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 设置为开启状态

原文发布于微信公众号 - 性能与架构(yogoup)

原文发表时间:2015-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏holer

如何从外网访问局域网Apache HTTP Server

本地安装了Apache HTTP Server,只能在局域网内访问,怎样从公网也能访问本地Apache HTTP Server?

1991
来自专栏weixuqin 的专栏

Maven配置与安装

首先在 maven 官网下载 maven 压缩包:https://maven.apache.org/download.cgi 。

1821
来自专栏Linux运维学习之路

Nginx服务编译安装、日志功能、状态模块及访问认证模式实操

系统环境   [root@web ~]# cat /etc/redhat-release   CentOS release 6.9 (Final)   [ro...

2656
来自专栏ytkah

dedecms首页去掉index.html怎么设置

  很多网友用IIS服务器建站,反映说dedecms首页默认多了一个/index.html,一般是没有这个后缀的,直接就**.com,那么如何将dedecms首...

3275
来自专栏小樱的经验随笔

Javac编译时出现包不存在的报错的解决方案

今天在学习包类调用时出现如下错误: ? packa包不存在,在C盘目录下应该有这个包啊 ? 原因是在当前目录下没找到,因为packa存放在其它目录下 如何解决:...

3916
来自专栏前端小叙

查看端口被占用的情况以及如何解除端口占用

在windows安装好nginx之后,打开nginx.exe失败,我想应该是80端口被占用了,遂找到此方法。 注:以下命令需要在管理员权限下运行 以下文章主要以...

3575
来自专栏holer

手机APP应用怎样从外网访问本地WEB应用

本地安装了WEB服务端,手机APP应用只能在局域网内访问本地WEB,怎样使手机APP应用从公网也能访问本地WEB?

5211
来自专栏计算机视觉

linux-Anaconda+conda创建python-pytorch虚拟环境

2162
来自专栏磨磨谈

rbd-mirror配置指南-单向备份

RBD 的 mirroring 功能将在Jewel中实现的,这个Jewel版本已经发布了很久了,这个功能已经在这个发布的版本中实现了,本来之前写过一篇文章,但是...

1171
来自专栏大数据-Hadoop、Spark

Unable to connect to zookeeper server within timeout: 6000

1.启动zookeeper 2.启动kafka 3.启动kafka-producer 4.启动kafka-consumer 5.生产一些消息 6.ka...

4196

扫码关注云+社区

领取腾讯云代金券