Wissensdatenbank

Scaling & high availability · aktualisiert am 17. Juni 2024 · geprüft am 9. Juli 2026

Externen Load Balancer für Appliance-Dienste verwenden

TLS auf einem externen Proxy terminieren und NtkAS sowie NtkSSO über mehrere Appliance-Knoten verteilen, mit Beispielen für HAProxy und Nginx.

Normalerweise wird TLS für HTTP-Anfragen auf dem eingebauten Reverse-Proxy terminiert. Wenn Sie die Anwendung jedoch über mehrere Hosts skalieren müssen, können Sie dieses Verhalten ändern.

Um einen externen Proxy zu verwenden und Anfragen zwischen den Knoten zu verteilen, führen Sie die folgenden Befehle aus.

Für den Authentication-Server-Dienst (NtkAS):

$ ntk cfg setc nas.external_proxy on
$ ntk redis start
$ ntk cfg set :nas.redis_url redis://10.0.1.98:6379/cache
$ ntk as restart

Ersetzen Sie die IP-Adresse 10.0.1.98 durch die Adresse des Knotens, auf dem der Redis-Beschleuniger laufen wird. Für die Hochverfügbarkeit des Redis-Beschleunigerdienstes empfiehlt es sich, den VRRP-Dienst zu konfigurieren. Siehe REDIS-Dienst mit VRRP einrichten.

Für den SSO-Dienst (NtkSSO):

$ ntk cfg setc sso.external_proxy on
$ ntk sso restart

Führen Sie die Befehle auf jedem Knoten aus, der zum Backend-Pool des externen Load Balancers gehören soll.

Die Dienste erwarten die tatsächliche Client-IP-Adresse im HTTP-Header X-Real-IP. Das ist relevant, wenn Sie je nach Standort des Benutzers im Netzwerk unterschiedliche Sicherheitsrichtlinien einsetzen.

Nach der Neukonfiguration ist der NtkAS-Dienst auf dem Knoten unter tcp/5000 erreichbar, der NtkSSO-Dienst unter tcp/7000. Fügen Sie diese Endpunkte dem Pool des externen Load Balancers hinzu. Die interne IP-Adresse des Knotens ermitteln Sie mit ntk net eth0 address.

Wenn der Management-Port nicht auf dem Standardwert steht und der Dual-Instance-Modus aktiv ist (:nas.dual_instance_mode = on), ist zusätzlich die Verwaltungsschnittstelle unter tcp/6000 erreichbar. Machen Sie die administrative Schnittstelle öffentlich zugänglich, sollten Sie diesen Dienst zusätzlich absichern. Andernfalls können Sie über den eingebauten Proxy-Dienst direkt über die interne IP-Adresse des Knotens auf die Verwaltung zugreifen. Sie können den VRRP-Dienst so konfigurieren, dass alle Knoten eine einzige interne IP-Adresse verwenden. Weitere Details finden Sie in der Dokumentation.

Nachfolgend finden Sie Konfigurationsbeispiele für gängige Load-Balancing-Lösungen.

HAProxy-Konfiguration für einen NtkAS-Dienst

backend notakey-backend
        mode http
        balance roundrobin
        option forwardfor
        option httpchk
        http-request set-header X-Forwarded-Port %[dst_port]
        http-request set-header X-Real-IP %[src_addr]
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        server node01 10.0.1.71:5000 check
        server node02 10.0.1.72:5000 check
        server node03 10.0.1.73:5000 check

Nginx-Konfiguration für einen NtkAS-Dienst

http {
    include    conf/mime.types;
    index    index.html index.htm index.php;
    access_log   logs/access.log  main;
    sendfile     on;
    tcp_nopush   on;
    server_names_hash_bucket_size 128; # this seems to be required for some vhosts


    upstream ntkservers {
        server 10.0.1.71:5000;
        server 10.0.1.72:5000;
        server 10.0.1.73:5000;
        # Nginx open source monitors backends by analyzing requests
        # If request times out, backend is marked as unavailable
        # This may lead to unintended failures during appliance updates
    }

    ; Nginx Plus config
    match server_ok {
        status 200;
    }

    server {
        listen 443 ssl http2;
        root /app/public;

        ssl_certificate /etc/nginx/ssl/ntkchain.pem;
        ssl_certificate_key /etc/nginx/ssl/ntk.key;
        ssl_session_timeout 1d;
        ssl_session_cache shared:MySSL:10m;
        ssl_session_tickets off;

        ssl_protocols TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;

        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header X-Forwarded-Port $server_port;

            client_max_body_size    10m;
            client_body_buffer_size 128k;

            proxy_connect_timeout   10;
            proxy_send_timeout      90;
            proxy_read_timeout      90;
            proxy_buffers           32 4k;

            proxy_redirect off;
            proxy_pass http://ntkservers;
            # Nginx Plus config
            health_check interval=10 uri=/api/health match=server_ok;
        }
    }
}

← Zurück zum Support

Ihre erste passwortlose Anmeldung – noch diese Woche

30 Minuten mit einem Ingenieur statt einer Vertriebspräsentation. Gemeinsam planen wir, wie in Ihrer VPN-, SSO- oder Windows-Umgebung ein funktionierendes Pilotprojekt an den Start geht.