Tudásbázis

Scaling & high availability · frissítve 2024. június 17. · felülvizsgálva 2026. július 9.

Külső terheléselosztó használata a készülékszolgáltatásokhoz

TLS lezárása külső proxyn, az NtkAS és NtkSSO terheléselosztása több készülékcsomópont között, HAProxy- és Nginx-példákkal.

A HTTP-kérések TLS-lezárása alapesetben a beépített fordított proxyn történik, de ha az alkalmazást több gépre kell skálázni, ez módosítható.

Külső proxy használatához és a kérések csomópontok közötti elosztásához adja ki az alábbi parancsokat.

A hitelesítési szerver szolgáltatáshoz (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

Cserélje ki a 10.0.1.98 IP-címet annak a csomópontnak a címére, amelyen a Redis-gyorsítótár fut majd. A Redis-gyorsítótár magas rendelkezésre állásához a VRRP szolgáltatás használata javasolt. Lásd: Redis szolgáltatás beállítása VRRP-vel.

Az SSO szolgáltatáshoz (NtkSSO):

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

A parancsokat minden olyan csomóponton végre kell hajtani, amely részt vesz a külső terheléselosztó backend-készletében.

A szolgáltatások a valós távoli IP-címet az X-Real-IP HTTP-fejlécben várják. Ez akkor lényeges, ha a felhasználó hálózati helyétől függően eltérő biztonsági házirendeket alkalmaz.

Az átkonfigurálás után az NtkAS szolgáltatás a csomópont tcp/5000-es, az NtkSSO szolgáltatás a tcp/7000-es portján lesz elérhető. Ezeket a végpontokat fel kell venni a külső terheléselosztó készletébe. A csomópont belső IP-címét az ntk net eth0 address paranccsal kérdezheti le.

Ha a felügyeleti port beállítása nem az alapértelmezett, és a kettős példány mód aktív (:nas.dual_instance_mode = on), a felügyeleti felület a tcp/6000-es porton is elérhetővé válik; ha az adminisztrációs felületet nyilvánosan teszi közzé, gondoskodjon a szolgáltatás kiegészítő védelméről. Egyébként a beépített proxyszolgáltatáson keresztül közvetlenül a csomópont belső IP-címén érheti el a felügyeletet. A VRRP szolgáltatás beállítható úgy, hogy az összes csomópont egyetlen belső IP-címet használjon. Részletekért lásd a dokumentációt.

Alább néhány elterjedt terheléselosztó megoldás konfigurációs példáját találja.

HAProxy-konfiguráció NtkAS szolgáltatáshoz

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áció NtkAS szolgáltatáshoz

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

← Vissza a támogatáshoz

Az első jelszó nélküli bejelentkezés már ezen a héten

30 perces beszélgetés egy mérnökkel – nem értékesítési prezentáció. Közösen megtervezzük, hogyan indulhat el egy működő pilotprojekt az Ön VPN-, SSO- vagy Windows-környezetében.