我想将一些网站迁移到新服务器。完成所有 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
和。(当您只有一个后端服务器时,检查的价值并不大,但您始终可以稍后将其添加回来)check
server
Host: localhost
您的支票上可能返回了一些不寻常的东西。