Ich versuche, einen sehr einfachen HTTP-Load-Balancer mit node.js-Backends in CentOS 7 einzurichten. Die Backends sind alle HTTP-Server.
Wenn ich sowohl das Backend so einstelle, dass es Port 80 abhört, als auch HAProxy, um Port 80 abzuhören und Port 80 im Backend zu verwenden, funktioniert alles einwandfrei. So sieht die Konfigurationsdatei in einer solchen Konfiguration aus:
global
log 127.0.0.1 local2 info
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 256
user haproxy
group haproxy
daemon
defaults
mode http
log global
option httplog
timeout connect 10s
timeout client 30s
timeout server 30s
frontend http-in
bind :80
default_backend backend_servers
option forwardfor
backend backend_servers
balance roundrobin
server backend1 10.0.4.51:80 check
# server backend2 10.0.4.52:80 check
# server backend3 10.0.4.53:80 check
# server backend4 10.0.4.54:80 check
# server backend5 10.0.4.55:80 check
# server backend6 10.0.4.56:80 check
Wenn ich jedoch alle Ports auf 8124 ändere, zeigt HAProxy beim Start den folgenden Fehler an:
haproxy[3324]: backend backend_servers has no server available!
So sieht die neue Konfiguration aus
global
log 127.0.0.1 local2 info
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 256
user haproxy
group haproxy
daemon
defaults
mode http
log global
option httplog
timeout connect 10s
timeout client 30s
timeout server 30s
frontend http-in
bind :8124
default_backend backend_servers
option forwardfor
backend backend_servers
balance roundrobin
server backend1 10.0.4.51:8124 check
# server backend2 10.0.4.52:8124 check
# server backend3 10.0.4.53:8124 check
# server backend4 10.0.4.54:8124 check
# server backend5 10.0.4.55:8124 check
# server backend6 10.0.4.56:8124 check
Sicherlich überwacht das Backend-Programm node.js jetzt Port 8124.
Die Firewall ist für Port 8124 im Backend und den folgenden Befehl geöffnet:
wget http://10.0.4.51:8124/action
funktioniert perfekt mit dem Load Balancer, was darauf hinweist, dass der Load Balancer tatsächlich auf das Backend zugreifen kann.
Unter diesen Umständen scheint HAProxy nicht gestartet zu werden, da Port 8124 bei LISTEN
Verwendung nicht in dem Status angezeigt wird, in dem ich ihn verwende netstat -an
.
Dies ist das erste Mal, dass ich HAProxy verwende, daher fehlt mir möglicherweise etwas wirklich Triviales.
Gibt es noch etwas, das ich überprüfen sollte?