我使用 haproxy 1.5.2 我的 haproxy.cfg 有以下服务器定义:
server HALB_ucd1 ${UCD1_END_POINT_IP}:${UCD1_END_POINT_PORT} check port 8444
我在 bash 中设置了 UCD1_END_POINT_IP 和 UCD1_END_POINT_PORT,并使用 service haproxy restart 启动 haproxy
haproxy 重新启动正常,但 UCD1_END_POINT_IP 和 UCD1_END_POINT_PORT 未解析。我看到根据 haproxy 文档,它受支持:
Any part of the address string may reference any number of environment
variables by preceding their name with a dollar sign ('$') and optionally
enclosing them with braces ('{}'),
similarly to what is done in Bourne shell.
如果我将其更改为硬编码 IP 和端口,它就可以正常工作。我错过了什么?
谢谢你!
答案1
您是否尝试过使用类似以下的方法:
server HALB_ucd1 "${UCD1_END_POINT_IP}:${UCD1_END_POINT_PORT}" check port 8444
答案2
尝试使用:env(variablename)
。
不过这个选项似乎只在1.5+版本中存在。
http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#7.3.2-env