Base de connaissances

Scaling & high availability · mis à jour le 17 juin 2024 · vérifié le 9 juillet 2026

Utiliser un répartiteur de charge externe pour les services de l'appliance

Terminez TLS sur un proxy externe et répartissez NtkAS et NtkSSO sur plusieurs nœuds de l'appliance, avec des exemples HAProxy et Nginx.

Normalement, le TLS des requêtes HTTP se termine sur le reverse proxy intégré, mais si vous devez répartir l’application sur plusieurs hôtes, vous pouvez modifier ce comportement.

Pour utiliser un proxy externe et répartir les requêtes entre les nœuds, exécutez les commandes suivantes.

Pour le service Authentication Server (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

Remplacez l’adresse IP 10.0.1.98 par celle du nœud qui exécutera l’accélérateur Redis. Pour assurer la haute disponibilité du service d’accélérateur Redis, nous vous recommandons d’utiliser le service VRRP. Consultez Configurer le service REDIS avec VRRP.

Pour le service SSO (NtkSSO) :

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

Exécutez ces commandes sur chaque nœud qui fera partie du pool de backend du répartiteur de charge externe.

Les services s’attendent à recevoir l’adresse IP réelle du client dans l’en-tête HTTP X-Real-IP. C’est important si vous appliquez des politiques de sécurité différentes selon l’emplacement de l’utilisateur dans le réseau.

Après la reconfiguration, le service NtkAS sera exposé sur le tcp/5000 du nœud, et le service NtkSSO sur le tcp/7000. Ajoutez ces endpoints au pool du répartiteur de charge externe. Utilisez ntk net eth0 address pour découvrir l’adresse IP interne du nœud.

Si le port de gestion n’a pas sa valeur par défaut et que le mode dual instance est actif (:nas.dual_instance_mode = on), l’interface de gestion sera elle aussi exposée sur le tcp/6000 ; protégez-la toutefois par des moyens supplémentaires si vous exposez publiquement l’interface d’administration. Sinon, vous pouvez utiliser le service de proxy intégré pour accéder à la gestion directement via l’adresse IP interne du nœud. Vous pouvez configurer le service VRRP afin que tous les nœuds utilisent une seule adresse IP interne. Consultez la documentation pour plus de détails.

Vous trouverez ci-dessous des exemples de configuration pour les solutions de répartition de charge courantes.

Configuration de HAProxy pour un service NtkAS

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

Configuration de Nginx pour un service NtkAS

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;
        }
    }
}

← Retour à l’assistance

Votre première connexion sans mot de passe, dès cette semaine

30 minutes avec un ingénieur, pas une présentation commerciale. Ensemble, nous verrons comment lancer un pilote fonctionnel dans votre environnement VPN, SSO ou Windows.