Zināšanu bāze

Scaling & high availability · atjaunots 2024. gada 17. jūnijs · pārskatīts 2026. gada 9. jūlijs

Ārēja slodzes līdzsvarotāja izmantošana ierīces pakalpojumiem

Terminējiet TLS ārējā starpniekserverī un sadaliet NtkAS un NtkSSO slodzi starp vairākiem ierīces mezgliem — ar HAProxy un Nginx piemēriem.

Pēc noklusējuma TLS savienojumi HTTP pieprasījumiem tiek terminēti iebūvētajā reversajā starpniekserverī, taču, ja lietojumprogramma jāmērogo uz vairākiem serveriem, šo uzvedību var mainīt.

Lai izmantotu ārēju starpniekserveri un sadalītu pieprasījumus starp mezgliem, izpildiet šādas komandas.

Autentifikācijas servera pakalpojumam (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

IP adresi 10.0.1.98 aizstājiet ar tā mezgla adresi, kurā darbosies Redis kešatmiņas pakalpojums. Redis pakalpojuma augstajai pieejamībai ieteicams konfigurēt VRRP. Skatiet REDIS pakalpojuma iestatīšana ar VRRP.

SSO pakalpojumam (NtkSSO):

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

Komandas jāizpilda katrā mezglā, kas būs daļa no ārējā slodzes līdzsvarotāja aizmugures serveru kopas.

Klienta faktiskā IP adrese pakalpojumiem jānodod X-Real-IP HTTP galvenē. Tas ir svarīgi, ja atkarībā no lietotāja atrašanās vietas tīklā tiek piemērotas atšķirīgas drošības politikas.

Pēc pārkonfigurēšanas NtkAS pakalpojums mezglā būs pieejams tcp/5000 portā, bet NtkSSO pakalpojums — tcp/7000 portā. Šie galapunkti jāpievieno ārējā slodzes līdzsvarotāja serveru kopai. Mezgla iekšējo IP adresi var noskaidrot ar komandu ntk net eth0 address.

Ja pārvaldības porta iestatījums atšķiras no noklusējuma un ir ieslēgts dubultās instances režīms (:nas.dual_instance_mode = on), pārvaldības saskarne būs pieejama arī tcp/6000 portā, taču, padarot administratīvo saskarni publiski pieejamu, jāparūpējas par papildu aizsardzību. Pretējā gadījumā pārvaldībai varat piekļūt caur iebūvēto starpniekserveri tieši mezgla iekšējā IP adresē. VRRP pakalpojumu var konfigurēt tā, lai visiem mezgliem būtu viena kopīga iekšējā IP adrese. Sīkāku informāciju skatiet dokumentācijā.

Tālāk atrodami izplatītāko slodzes līdzsvarošanas risinājumu konfigurācijas piemēri.

HAProxy konfigurācija NtkAS pakalpojumam

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 konfigurācija NtkAS pakalpojumam

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

← Atpakaļ uz atbalstu

Pirmā pieteikšanās bez paroles — jau šonedēļ

30 minūšu saruna ar inženieri, nevis pārdošanas prezentācija. Kopīgi izplānosim, kā jūsu VPN, SSO vai Windows vidē palaist strādājošu pilotprojektu.