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