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