HAProxy Reverse Proxy Konfiguration
Ich möchte einige Websites auf einen neuen Server migrieren. Es dauert ein paar Tage, bis alle DNS-Änderungen abgeschlossen sind. Daher wollte ich einen HAProxy-Reverse-Proxy einrichten, um den gesamten Datenverkehr vom alten zum neuen Standort umzuleiten. Ich bin nicht sehr erfahren mit einer solchen Konfiguration. Beim Besuch einer Domain erhalte ich die Fehlermeldung:
503 Service Unavailable No server is available to handle this request.
Dies ist die Konfiguration, die ich verwendet habe (mit versteckter IP-Adresse):
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 }
Antworten
Dieser Fehler bedeutet, dass das Backend nicht als "up" betrachtet wird.
Stellen Sie zunächst sicher, dass der Backend-Server ausgeführt wird und vom HAProxy-Computer aus zugänglich ist, z. B. telnet x.x.x.x 80und stellen Sie sicher, dass eine Verbindung hergestellt wird.
Wenn Sie erfolgreich eine Verbindung herstellen können, müssen Sie zunächst prüfen, ob das Backend eine Prüfung nicht besteht. Versuchen Sie es option httpchkund entfernen Sie es checkaus der serverLeitung. (Wenn Sie nur einen Backend-Server haben, ist eine Prüfung nicht von großem Wert, aber Sie können sie später jederzeit wieder hinzufügen.)
Es kann sein, dass Sie Host: localhostim Scheck etwas Ungewöhnliches zurückgeben.