在 CentOS 9 上将 Haproxy 2.6.7 作为服务运行

在 CentOS 9 上将 Haproxy 2.6.7 作为服务运行

我想在我的 CentOS 9 上运行 HAProxy 2.6.7。

我已经下载并编译了启用标志的项目USE_SYSTEMD并安装了编译的文件。以下是我使用过的命令:

make TARGET=linux-glibc USE_LINUX_TPROXY=1 USE_ZLIB=1 USE_REGPARM=1 USE_PCRE=1 USE_PCRE_JIT=1  USE_OPENSSL=1 SSL_INC=/usr/include SSL_LIB=/usr/lib ADDLIB=-ldl ADDLIB=-lpthread USE_PROMEX=1 USE_SYSTEMD=1

make install 

mkdir -p /etc/haproxy 

mkdir -p /var/lib/haproxy  

touch /var/lib/haproxy/stats 

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy 

cp examples/haproxy.init /etc/init.d/haproxy 

chmod 755 /etc/init.d/haproxy 

systemctl daemon-reload 

systemctl start haproxy.service

最后一条指令返回以下内容:

haproxy.service: Can't open PID file /run/haproxy.pid (yet?) after start: Operation not permitted
haproxy.service: Failed with result 'protocol'.
Failed to start SYSV:...
/run/systemd/generator.late/haproxy.service:20: PIDFile= references a path below legacy directory /var/run/, updating /var/run/haproxy.pid

跑步

sudo haproxy -f /etc/haproxy/haproxy.cfg

有标志-c并且-d没有显示任何问题。有什么建议么?

答案1

有一种解决方案和一种解决方法(无需真正关心根本原因):

解决方法是:如果我们先使用 yum 安装 HAProxy(目前是旧版本 2.4),然后用编译后的新版本替换它,我们就不会遇到这个问题。

对于 RCA:systemd 中应该有一个 haproxy.service,但当前不存在...可以使用复制模板

cp haproxy-2.6.7/admin/systemd/haproxy.service.in /etc/systemd/system/haproxy.service

(注意目标上的重命名)并为其提供公共读/写访问权限:

chmod 755 /etc/systemd/system/haproxy.service

然后我们只需重新加载systemctl守护进程并启动HAProxy服务

相关内容