我想在我的 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服务