Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:nginx:loadbalancer

Loadbalancing mit NGINX

Das Ziel von Loadbalancing ist die Lastverteilung. Eine Anfrage wird somit nicht nur von einem Server verarbeitet sondern gleich von mehreren. Dazu muss jeder Server die gleichen Daten besitzen, dies wird u.a. durch geteilte (Cloud) Speicher und Datenbanken gelöst. Diese Anleitung nutzt das NGINX Modul für das Loadbalancing. Dieses wird direkt mit geliefert in dem Debian-Repository.

Grundkonfiguration

http {
    upstream balancer {
        server 192.168.1.150;
        server 192.168.1.151;
        server 192.168.1.152;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://balancer;
        }
    }
}
NamespaceAufgabe
httpDefiniert die Art für das Protokoll
http.upstreamErstellung einer „Serversammlung“
http.serverErstellung des eigentlichen Servers
http.server.listenHorchen auf Port 80

Erweiterung

NameBeschreibungNamespace
ip_hash 1)Zuweisung des Servers anhand der IPupstream
least_conn 2)Zuweisung des Servers anhand der Sessionupstream
weight 3)Gewichtung der Serverupstream.server
Health-Checksmax_fails und fail_timeout werden häufig zusammen verwendet
max_fails 4)Setzten der Maximalversuche für einen Ping des Serversupstream.server
fail_timeout 5)Interne Angabe, wie langer der Server als offline gemeldet sein sollupstream.server
max_conns 6)Interne Angabe, wie langer der Server als offline gemeldet sein sollupstream.server
down 7)Interne Angabe, dass der Server offline istupstream.server

Video-Tutorial

1)
upstream balancer {
ip_hash;
192.168.1.150;
192.168.1.151;
192.168.1.152;
}
2)
upstream balancer {
least_conn;
192.168.1.150;
192.168.1.151;
192.168.1.152;
}
3)
upstream balancer {
192.168.1.150 weight=3;
192.168.1.151 weight=2;
192.168.1.152 weight=1;
}
4)
upstream balancer {
192.168.1.150 max_fails=1;
192.168.1.151 max_fails=1;
192.168.1.152;
}
5)
upstream balancer {
192.168.1.150 fail_timeout=60;
192.168.1.151 max_fails=90;
192.168.1.152;
}
6)
upstream balancer {
192.168.1.150 max_conns=150;
192.168.1.151 max_conns=50;
192.168.1.152;
}
7)
upstream balancer {
192.168.1.150;
192.168.1.151;
192.168.1.152down;
}
linux/nginx/loadbalancer.txt · Zuletzt geändert: 28.12.2017 00:28 (Externe Bearbeitung)