Base de conocimiento

Scaling & high availability · actualizado el 17 de junio de 2024 · revisado el 9 de julio de 2026

Usar un balanceador de carga externo para los servicios del appliance

Termina TLS en un proxy externo y reparte NtkAS y NtkSSO entre varios nodos del appliance, con ejemplos para HAProxy y Nginx.

Normalmente, el TLS de las peticiones HTTP se termina en el reverse proxy integrado, pero si necesita escalar la aplicación en varios hosts, puede cambiarlo.

Para usar un proxy externo y repartir las peticiones entre los nodos, ejecute los siguientes comandos.

Para el servicio 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

Sustituya la dirección IP 10.0.1.98 por la del nodo que ejecutará el acelerador Redis. Para configurar la alta disponibilidad del acelerador Redis le recomendamos usar el servicio VRRP. Consulte Configurar el servicio REDIS con VRRP.

Para el servicio SSO (NtkSSO):

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

Ejecute los comandos en cada nodo que vaya a formar parte del pool de backend del balanceador de carga externo.

Los servicios esperan recibir la dirección IP real del cliente en la cabecera HTTP X-Real-IP. Esto es relevante si aplica políticas de seguridad distintas según la ubicación del usuario en la red.

Tras la reconfiguración, el servicio NtkAS quedará expuesto en el tcp/5000 del nodo y el servicio NtkSSO en el tcp/7000. Añada estos endpoints al pool del balanceador de carga externo. Use ntk net eth0 address para averiguar la dirección IP interna del nodo.

Si el puerto de gestión no tiene el valor predeterminado y el modo dual instance está activo (:nas.dual_instance_mode = on), la interfaz de gestión también quedará expuesta en el tcp/6000, pero debería protegerla de forma adicional si expone la interfaz administrativa públicamente. De lo contrario, puede usar el servicio de proxy integrado para acceder a la gestión directamente por la dirección IP interna del nodo. Puede configurar el servicio VRRP para que todos los nodos usen una única dirección IP interna. Consulte la documentación para más detalles.

A continuación encontrará ejemplos de configuración de soluciones de balanceo de carga habituales.

Configuración de HAProxy para un servicio 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

Configuración de Nginx para un servicio 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;
        }
    }
}

← Volver a soporte

Su primer inicio de sesión sin contraseña, esta misma semana

30 minutos con un ingeniero, no una presentación comercial. Juntos planificaremos cómo poner en marcha un piloto funcional en su entorno de VPN, SSO o Windows.