haproxy -c -f /etc/haproxy/haproxy.cnf
我正在使用 HAproxy 作为负载均衡器进行一些测试。我安装了它并进行了配置,甚至使用 rsyslog 进行日志记录。我使用和检查了配置 haproxy -d -f /etc/haproxy.cnf
。一切似乎都很好,但在启动 haproxy 后systemctl start haproxy
,我执行了systemctl status haproxy
,它显示了以下内容:
haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled)
Active: inactive (dead) since jue 2015-07-02 14:47:13 CDT; 7s ago
Process: 29832 ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid (code=exited, status=0/SUCCESS)
Main PID: 29832 (code=exited, status=0/SUCCESS)
systemd[1]: Started HAProxy Load Balancer.
haproxy-systemd-wrapper[29832]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
haproxy-systemd-wrapper[29832]: [ALERT] 182/144713 (29833) : Could not open configuration file /etc/haproxy/haproxy.cfg : Permission denied
haproxy-systemd-wrapper[29832]: haproxy-systemd-wrapper: exit, haproxy RC=256
从逻辑上讲,这必须指向文件权限,因此我对 haproxy.cnf 的权限为 777,结果相同。我测试了 chown haproxy:haproxy,结果相同。
我经常使用护目镜,但我找不到解决该问题的方法。
答案1
也许 Selinux(如果您使用的是基于 Redhat 的发行版)或 apparmor(如果您使用的是 ubuntu)存在一些配置错误。
尝试停止它们以验证这是否是问题所在。您还可以尝试使用以下命令以运行 haproxy 守护程序的用户身份读取配置文件:
sudo -u <haproxy_user> cat /etc/haproxy/haproxy.cfg