Baza wiedzy

Scaling & high availability · zaktualizowano 17 czerwca 2024 · zweryfikowano 9 lipca 2026

Zewnętrzny load balancer dla usług appliance

Terminuj TLS na zewnętrznym proxy i rozkładaj NtkAS oraz NtkSSO na wiele węzłów appliance, z przykładami dla HAProxy i Nginx.

Zwykle TLS dla żądań HTTP jest terminowany na wbudowanym reverse proxy, ale jeśli musisz skalować aplikację na wiele hostów, możesz to zmienić.

Aby użyć zewnętrznego proxy i rozłożyć żądania między węzłami, wykonaj poniższe polecenia.

Dla usługi 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

Zastąp adres IP 10.0.1.98 adresem węzła, na którym będzie działać akcelerator Redis. Do skonfigurowania wysokiej dostępności akceleratora Redis zalecamy usługę VRRP. Zobacz Konfiguracja usługi REDIS z VRRP.

Dla usługi SSO (NtkSSO):

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

Polecenia wykonaj na każdym węźle, który ma należeć do puli backendu zewnętrznego load balancera.

Usługi oczekują rzeczywistego adresu IP klienta w nagłówku HTTP X-Real-IP. Ma to znaczenie, jeśli stosujesz różne polityki bezpieczeństwa w zależności od położenia użytkownika w sieci.

Po ponownej konfiguracji usługa NtkAS na węźle jest dostępna na tcp/5000, a usługa NtkSSO na tcp/7000. Te punkty końcowe dodaj do puli zewnętrznego load balancera. Wewnętrzny adres IP węzła ustalisz poleceniem ntk net eth0 address.

Jeśli port zarządzania nie ma wartości domyślnej i aktywny jest tryb dual instance (:nas.dual_instance_mode = on), interfejs zarządzania będzie dostępny również na tcp/6000. Jeśli udostępniasz interfejs administracyjny publicznie, zabezpiecz dodatkowo tę usługę. W przeciwnym razie możesz użyć wbudowanej usługi proxy, aby uzyskać dostęp do zarządzania bezpośrednio przez wewnętrzny adres IP węzła. Usługę VRRP możesz skonfigurować tak, aby wszystkie węzły korzystały z jednego wewnętrznego adresu IP. Więcej szczegółów znajdziesz w dokumentacji.

Poniżej znajdziesz przykłady konfiguracji popularnych rozwiązań równoważenia obciążenia.

Konfiguracja HAProxy dla usługi 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

Konfiguracja Nginx dla usługi 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;
        }
    }
}

← Powrót do pomocy

Pierwsze logowanie bez hasła jeszcze w tym tygodniu

30 minut rozmowy z inżynierem, a nie prezentacja handlowa. Wspólnie zaplanujemy, jak uruchomić działający projekt pilotażowy w Państwa środowisku VPN, SSO lub Windows.