↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

HAProxy 3.4.4

10. 简化配置管理

HAProxy 3.4 入门、配置与管理三套完整手册的简体中文译本

组成集群的两个 HAProxy 节点通常使用完全相同的配置,只有少数地址不同。与其为每个节点分别维护一份最终必然产生差异的重复配置,不如在配置中引用环境变量。这样,多个配置实例便可共用同一个文件,只需在系统级环境变量中保留少量差异。此功能始于 1.5 版,当时只有地址可以包含环境变量;1.6 版进一步支持在所有位置使用环境变量。其语法与 UNIX shell 相同:变量以美元符号(’$’)开头,后接左花括号(’{’)、变量名和右花括号(’}’)。除地址外,环境变量只在双引号包围的参数中解析;这是为了避免破坏使用含美元符号正则表达式的现有配置。

环境变量也便于编写可在多个站点使用、仅地址不同的通用配置,还可以把密码从部分配置文件中移出。以下示例中的 “site1.env” 文件会在启动时由 init 脚本加载:

$ cat site1.env
LISTEN=192.168.1.1
CACHE_PFX=192.168.11
SERVER_PFX=192.168.22
LOGGER=192.168.33.1
STATSLP=admin:pa$$w0rd
ABUSERS=/etc/haproxy/abuse.lst
TIMEOUT=10s

$ cat haproxy.cfg
global
    log "${LOGGER}:514" local0

defaults
    mode http
    timeout client "${TIMEOUT}"
    timeout server "${TIMEOUT}"
    timeout connect 5s

frontend public
    bind "${LISTEN}:80"
    http-request reject if { src -f "${ABUSERS}" }
    stats uri /stats
    stats auth "${STATSLP}"
    use_backend cache if { path_end .jpg .css .ico }
    default_backend server

backend cache
    server cache1 "${CACHE_PFX}.1:18080" check
    server cache2 "${CACHE_PFX}.2:18080" check

backend server
    server cache1 "${SERVER_PFX}.1:8080" check
    server cache2 "${SERVER_PFX}.2:8080" check
来源与许可

文档取自 pig.center · 上游文档

版本
3.4.4
许可
GPL-2.0-only
来源修订
1dff183d0ca5a430d10324c5bbc64f9853ed77ae5df299827b47b2f54e352f65
译文修订
1dff183d0ca5a430d10324c5bbc64f9853ed77ae5df299827b47b2f54e352f65
原始 Markdown