为什么HAProxy不会听80端口?

新鲜机器,没有http服务器正在运行(没有httpd,没有lighttpd,没有nginx)

$ netstat -nat | grep 80 | grep LISTEN 

什么都不收

这是我的HAProxy conf,可能是HAProxy没有的原因

 global maxconn 72000 daemon defaults mode http timeout connect 4000ms timeout client 60000ms timeout server 30000ms frontend my_frontend bind *:80 default_backend cdn backend cdn server cdn1 10.177.0.17:80 weight 1 maxconn 8192 check server cdn2 10.177.1.92:80 weight 1 maxconn 8192 check server cdn3 10.177.1.147:80 weight 1 maxconn 8192 check server cdn4 10.177.1.202:80 weight 1 maxconn 8192 check server cdn4 10.177.1.202:80 weight 1 maxconn 8192 check server cdn5 10.177.1.211:80 weight 1 maxconn 8192 check server cdn6 10.177.1.93:80 weight 1 maxconn 8192 check server cdn7 10.177.1.230:80 weight 1 maxconn 8192 check server cdn8 10.177.0.7:80 weight 1 maxconn 8192 check server cdn9 10.177.0.196:80 weight 1 maxconn 8192 check server cdn10 10.177.1.82:80 weight 1 maxconn 8192 check server cdn11 10.177.0.124:80 weight 1 maxconn 8192 check server cdn12 10.177.1.142:80 weight 1 maxconn 8192 check server cdn13 10.177.1.58:80 weight 1 maxconn 8192 check server cdn14 10.177.1.137:80 weight 1 maxconn 8192 check server cdn15 10.177.1.169:80 weight 1 maxconn 8192 check server cdn16 10.177.0.187:80 weight 1 maxconn 8192 check server cdn17 10.177.1.95:80 weight 1 maxconn 8192 check server cdn18 10.177.1.123:80 weight 1 maxconn 8192 check 

从源代码运行haproxy-1.4.13。

当我尝试启动它,我得到这个错误

 [ALERT] 084/220004 (2409) : Starting frontend my_frontend: cannot bind socket 

添加名为user的全局配置参数

 user nobody 

或一些较少特权的用户。 仍然需要以root身份启动,但在获取端口进程本身之后,会将用户/特权减少为无人。

所以我试着用root用户启动haproxy,它工作。 我不确定在root下运行它是否是个好主意。

haproxy可以在其他用户下运行。 如没有人..