Teadmusbaas

Scaling & high availability · uuendatud 17. juuni 2024 · üle vaadatud 9. juuli 2026

Välise koormusjaoturi kasutamine seadme teenuste jaoks

Lõpetage TLS välisel puhverserveril ja jaotage NtkAS-i ja NtkSSO koormus mitme seadme sõlme vahel — HAProxy ja Nginxi näidetega.

Tavaliselt lõpetatakse HTTP-päringute TLS sisseehitatud pöördpuhverserveris, kuid kui rakendust on vaja skaleerida mitmele hostile, saab seda muuta.

Välise puhverserveri kasutamiseks ja päringute jaotamiseks sõlmede vahel käivitage järgmised käsud.

Autentimisserveri teenuse (NtkAS) jaoks:

$ 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

Asendage IP-aadress 10.0.1.98 selle sõlme aadressiga, millel hakkab tööle Redise kiirendi. Redise kiirendi teenuse kõrgkäideldavuse tagamiseks on soovitatav kasutada VRRP teenust. Vt REDIS-e teenuse seadistamine VRRP-ga.

SSO teenuse (NtkSSO) jaoks:

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

Käsud tuleb käivitada igal sõlmel, mis kuulub välise koormusjaoturi taustserverite kogumisse.

Teenused eeldavad, et kliendi tegelik IP-aadress edastatakse HTTP-päises X-Real-IP. See on oluline, kui rakendate erinevaid turvapoliitikaid sõltuvalt kasutaja asukohast võrgus.

Pärast ümberseadistamist on NtkAS-i teenus sõlmel saadaval pordil tcp/5000 ja NtkSSO teenus pordil tcp/7000. Need lõpp-punktid tuleb lisada välise koormusjaoturi kogumisse. Sõlme sisemise IP-aadressi tuvastamiseks kasutage käsku ntk net eth0 address.

Kui halduspordi säte erineb vaikeväärtusest ja kaksikinstantsi režiim on aktiivne (:nas.dual_instance_mode = on), on ka haldusliides saadaval pordil tcp/6000. Haldusliidese avalikul eksponeerimisel tuleb seda teenust täiendavalt kaitsta. Teise võimalusena saate haldusliidesele ligi pääseda sisseehitatud puhverserveri kaudu otse sõlme sisemisel IP-aadressil. VRRP teenuse abil saate seadistada kõigi sõlmede jaoks ühe sisemise IP-aadressi. Lisateavet leiate dokumentatsioonist.

Allpool on levinud koormusjaotuslahenduste seadistusnäited.

HAProxy seadistus NtkAS-i teenuse jaoks

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

Nginxi seadistus NtkAS-i teenuse jaoks

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

← Tagasi toe lehele

Esimene paroolivaba sisselogimine juba sel nädalal

30-minutiline vestlus inseneriga, mitte müügiesitlus. Paneme koos paika, kuidas teie VPN-i, SSO või Windowsi keskkonnas töötav pilootprojekt käima saab.