HAProxy 未检测到具有非标准 http 端口的后端

HAProxy 未检测到具有非标准 http 端口的后端

我有一个 HAProxy 设置,其中后端服务器正在运行 Web 服务器非标准端口。配置如下

global

    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    tune.ssl.default-dh-param 2048
    user        haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

    ssl-default-bind-options no-sslv3
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

    ssl-default-server-options no-sslv3
    ssl-default-server-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

    tune.ssl.default-dh-param 2048

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    stats enable
    stats auth someuser:somepassword
    stats uri /hpstats
    option forwardfor       except 127.0.0.0/8
    option http-server-close
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000

frontend  http-in
    bind *:80
    bind *:443 ssl crt /etc/ssl/certs/test.pem no-sslv3

    #define hosts
    acl host_demo       hdr(host)       -i testing.domain.com

    #usage rules
    use_backend demo    if      host_demo
    default_backend             demo

backend demo
    server      demo 192.168.XX.XX:4873 check verify none

使用此设置时,HAProxy 总是会出现以下错误。

Message from syslogd@localhost at Nov  2 12:31:58 ...
 haproxy[24266]: backend demo has no server available!

当我将后端服务器更改为端口时804873一切正常

backend demo
    server      demo 192.168.XX.XX:80 check verify none

我在两台机器上运行 Centos 7。我尝试在两台机器上启用http_t_port使用semanage,但没有任何效果。只有当我将4873服务器上的端口从更改为80443时,HAProxy 负载平衡才起作用,它才停止抱怨。

有人能指出这是为什么吗?我该如何解决它,以便我可以在非标准端口上运行 HTTP?考虑到我正在使用 SELinux,我很确定我缺少某些设置。

答案1

@andthereitgoes

看起来该服务没有监听端口 4873 或者被源或目标处的 iptables 阻止。

相关内容