是否可以更改 haproxy 中的配置文件位置?

是否可以更改 haproxy 中的配置文件位置?

我将 Haproxy 安装在/apps/haproxy/usr/local/sbin.我不想将配置放在 和 中,而是想/etc/haproxy/haproxy.cfg使用默认配置。如何使用自定义配置位置启动 Haproxy?/apps/haproxy/conf/haproxy.cfg/etc/default/haproxy

注意我应该使 haproxy 应用程序可移动。

介绍

我在机器中安装 Haproxy,用户只能访问 /apps。所以我无法安装任何使用 /etc 作为配置位置的东西。我找到了如何在 /apps 中安装 haproxy,但配置未安装。

更新

舞会之前的答案我理解 -f 参数来设置haproxy.cfg位置。里面的配置怎么样/etc/default/haproxy?有没有办法在不引用的情况下运行 haproxy /etc/default/haproxy(总是ENABLED=1)?

答案1

这是我曾经在灵活性有限且未使用任何服务控制机制的环境中创建的一个简单文件的示例。该脚本是可执行的并且位于路径中,运行以启动或重新加载 HAProxy。根据您的路径进行定制。为了清晰起见添加了换行符:

#!/usr/bin/bash

echo "validating configuration..."
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c \ 
&& echo "config is valid, reloading..." \
&& /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg \
-p /var/run/haproxy.pid \
-sf $(cat /var/run/haproxy.pid)

指定-f配置文件,-c检查配置。如果失败,则会&&阻止重新加载,因为 HAProxy 的第一次运行(验证配置)以非零值退出。

在第二次调用中,-p指定新进程最终应写入其进程 id 的 pid 文件,并-sf指示 HAProxy 进行软重新加载,从旧的现有文件返回的进程号接管控制权。一旦旧进程的所有现有连接都耗尽,这将导致旧进程自行终止。

相关内容