我正在构建一个具有多个前端和后端的haproxy配置文件.这将是几百行,我宁愿将其拆分为我想要负载均衡的每个不同网站的单独文件.
HAProxy是否能够链接到主haproxy.cfg文件中的部分配置文件?
小智 32
配置文件无法从配置指令链接在一起.
但是,HAProxy可以使用-f交换机多次从其命令行加载多个配置文件:
haproxy -f conf/http-defaults -f conf/http-listeners -f conf/tcp-defaults -f conf/tcp-listeners
Run Code Online (Sandbox Code Playgroud)
如果您希望灵活配置大量的配置文件,您甚至可以指定如下目录:-f /etc/haproxy.然后,文件将按其词法顺序使用,较新的文件将覆盖较旧的文件.如果提供了文档的链接,请参阅邮件列表中的示例.此信息可以在管理指南中找到,而不是常规文档.
偶然发现这个答案,作者创建了模仿nginx禁用启用网站功能的脚本.在haproxy init.d启动时,他使用脚本循环来构建haproxy -f命令连接.
/etc/init.d/haproxy:
EXTRAOPTS=`for FILE in \`find /etc/haproxy/sites-enabled -type l | sort
-n\`; do CONFIGS="$CONFIGS -f $FILE"; done; echo $CONFIGS`
Run Code Online (Sandbox Code Playgroud)
haensite 脚本:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "You must be a root user" 2>&1
exit 1
fi
if [ $# -lt 1 ]; then
echo "Invalid number of arguments"
exit 1
fi
echo "Enabling $1..."
cd /etc/haproxy/sites-enabled
ln -s ../sites-available/$1 ./
echo "To activate the new configuration, you need to run:"
echo " /etc/init.d/haproxy restart"
Run Code Online (Sandbox Code Playgroud)
hadissite 脚本:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "You must be a root user" 2>&1
exit 1
fi
if [ $# -lt 1 ]; then
echo "Invalid number of arguments"
exit 1
fi
echo "Disabling $1..."
rm -f /etc/haproxy/sites-enabled/$1
echo "To activate the new configuration, you need to run:"
echo " /etc/init.d/haproxy restart"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19184 次 |
| 最近记录: |