HAProxy 反向代理配置

HAProxy 反向代理配置

我想将一些网站迁移到新服务器。完成所有 DNS 更改需要几天时间,因此我想设置一个 HAProxy 反向代理,将所有流量从旧位置重定向到新位置。我对这样的配置不是很有经验。访问域名时,我收到一条错误消息:

503 Service Unavailable No server is available to handle this request.

这是我使用的配置(隐藏了 IP 地址):

global

  log         127.0.0.1 local2

    chroot  /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group   haproxy
    daemon

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

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    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 localhost
   bind *:80
   bind *:443 ssl crt /etc/pki/tls/certs/haproxy.pem
   redirect scheme https if !{ ssl_fc }
   mode http
   default_backend node

backend node
    mode http
    option forwardfor
    option httpchk HEAD / HTTP/1.1\r\nHost:localhost
    server dcnode1 x.x.x.x:80 check
    http-request set-header X-Forwarded-Port %[dst_port]
    http-request add-header X-Forwarded-Proto https if { ssl_fc }

答案1

此错误意味着后端未被视为“启动”。

首先确保后端服务器正在运行并可从 HAProxy 机器访问,例如telnet x.x.x.x 80,确保它已连接。

如果您可以成功建立连接,则要检查的第二件事是后端是否未通过检查。尝试从行中删除option httpchk和。(当您只有一个后端服务器时,检查的价值并不大,但您始终可以稍后将其添加回来)checkserver

Host: localhost您的支票上可能返回了一些不寻常的东西。

相关内容