HAProxy 报告 servers-http 和 servers-https 已关闭。无法启动

HAProxy 报告 servers-http 和 servers-https 已关闭。无法启动

我第一次尝试设置 haproxy,它给我带来了很多麻烦。现在,当我调用 /etc/init.d 文件夹中的 haproxy 文件来启动它时,我得到以下信息:

$ ./haproxy start
  Starting haproxy:           [FAILED]

我已经确认 chef 安装了 haproxy:

$ haproxy -v
  HA-Proxy version 1.5.18 2016/05/10
  Copyright 2000-2016 Willy Tarreau <[email protected]>

为了进一步调查,我使用了以下命令:

$ haproxy -c -f /etc/haproxy/haproxy.cfg
  [WARNING] 023/190620 (24869) : parsing [/etc/haproxy/haproxy.cfg:19] : 'option httplog' not usable with frontend 'https' (needs 'mode http'). Falling back to 'option tcplog'. 
  Configuration file is valid

$ ha proxy -db -f /etc/haproxy/haproxy.cfg
  [WARNING] 023/190810 (25554) : parsing [/etc/haproxy/haproxy.cfg:19] : 'option httplog' not usable with frontend 'https' (needs 'mode http'). Falling back to 'option tcplog'.
  [WARNING] 023/190810 (25554) : Server servers-http/test001.company.org is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
  [ALERT] 023/190810 (25554) : backend 'servers-http' has no server available!
  [WARNING] 023/190811 (25554) : Server servers-https/test001.company.org is DOWN, reason: Layer4 connection problem, info: "Connection refused", check duration: 0ms. 0 active and 0 backup servers left. 0 sessions active, 0 requeued, 0 remaining in queue.
  [ALERT] 023/190811 (25554) : backend 'servers-https' has no server available!

我不确定服务器为什么不可用,因为该服务器与部署 haproxy 的服务器相同;它是本地主机,我只是在配置文件中有实际的服务器名称。该文件如下:

global
  log 127.0.0.1   local0
  log 127.0.0.1   local1 notice
  #log loghost    local0 info
  maxconn 4096
  #debug
  #quiet
  user root
  group root

defaults
  log     global
  mode    http
  retries 3
  timeout client 50s
  timeout connect 5s
  timeout server 50s
  option dontlognull
  option httplog
  option redispatch
  balance  roundrobin

# Set up application listeners here.

listen admin
  bind 127.0.0.1:22002
  mode http
  stats uri /


frontend http
  maxconn 2000
  bind 0.0.0.0:4000
  default_backend servers-http

frontend https
  mode tcp
  maxconn 2000
  bind 0.0.0.0:4001
  default_backend servers-https


backend servers-http
  server test001.company.com <IP address here>:4002 weight 1 maxconn 100 check

backend servers-https
  mode tcp
  server test001.company.com <IP address here>:4003 weight 1 maxconn 100 check
  option ssl-hello-chk

我也曾经netstat -nlp确保每个端口上没有运行任何程序。我不确定我还能检查什么。

编辑:

我打开另一个终端进行检查,确认 HAProxy 已启动并在端口 4000 和 4001 上运行。但是,后端端口无法使用。我还确认没有任何东西使用这些端口,使用netstat -nlp | grep 4002netstat -nlp | grep 4003。我还尝试使用 127.0.0.1 作为 IP 地址而不是实际 IP 地址,但仍然出现相同的错误。

答案1

在您的配置中使用 127.0.0.1 作为“此处的 IP 地址”。

您需要一些东西来监听 4002 和 4003 端口。

# netstat -nlp | grep 4002
tcp        0      0 0.0.0.0:4002            0.0.0.0:*               LISTEN      1564/python

例如,使用 python 基本 HTTP 服务器:

# python -m SimpleHTTPServer 4002
Serving HTTP on 0.0.0.0 port 4002 ...
127.0.0.1 - - [27/Jan/2020 22:55:34] "GET / HTTP/1.1" 200 -

您可以看到来自以下来源的请求:

$ wget 127.0.0.1:4000
--2020-01-27 22:55:34--  http://127.0.0.1:4000/
Connecting to 127.0.0.1:4000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 354 [text/html]
Saving to: 'index.html'

index.html 100%[=========================================>]     354  --.-KB/s    in 0s      

2020-01-27 22:55:34 (12.3 MB/s) - 'index.html' saved [354/354]

相关内容