HAProxy 配置文件根据功能和用途,主要有5 个部分组成,但有些部分并不是必须的,可以根据需要选择相应的部分进行配置。

  1、global 部分

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

  2、defaults 部分

  默认参数的配置部分。在此部分设置的参数值,默认会自动被引用到下面的frontend、backend 和listen 部分中,因此,如果某些参数属于公用的配置,只需在defaults 部分添加一次即可。而如果在frontend、backend 和listen 部分中也配置了与defaults 部分一样的参数,那么defaults 部分参数对应的值自动被覆盖。

  3、frontend 部分

  此部分用于设置接收用户请求的前端虚拟节点。frontend 是在HAProxy1.3 版本之后才引入的一个组件,同时引入的还有backend 组件。通过引入这些组件,在很大程度上简化了HAProxy 配置文件的复杂性。frontend 可以根据ACL 规则直接指定要使用的后端backend。

  4、backend 部分

  此部分用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求。添加的真实服务器类似于LVS 中的real server 节点。

  5、listen 部分

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