Puncte:0

Utilizați variabila antet în NGINX pentru a redirecționa traficul

drapel in

Eu folosesc NGINX (nginx Imagine Docker) ca proxy invers și doriți să utilizați $gazdă variabilă în curent/Server context pentru a redirecționa traficul către o gazdă specifică care este definită în Gazdă parametrul de antet al cererii primite. Configurația este următoarea:

evenimente {
}

curent {
  log_format log_stream '$remote_addr [$time_local] $protocol'
  '$starea $bytes_sent $bytes_received $session_time';

  access_log /var/log/nginx/access.log log_stream;
  error_log /var/log/nginx/error.log;

  Server {
    rezolutor 8.8.8.8 ipv6=off;
    asculta 127.0.0.1:18443;
    proxy_pass $gazdă:443;
  }
}

A apărut o eroare la pornire:

[emerg] 1#1: variabilă „gazdă” necunoscută

In conformitate cu documentația nginx această variabilă ar trebui să fie populată. Știți cum îl pot folosi în directiva serverului pentru a redirecționa traficul? Pot folosi alt parametru de antet cu numele/adresa de gazdă specificat pentru a redirecționa traficul?

Michael Hampton avatar
drapel cz
Ce nume de gazdă? Nu există o astfel de variabilă în contextul fluxului. Sunteți doar proxy un flux TCP brut. Ce antet gazdă?
ttsokov avatar
drapel in
Ce zici de această variabilă [$hostname](https://nginx.org/en/docs/stream/ngx_stream_core_module.html#var_hostname) din modulul ngx_stream_core_module
Michael Hampton avatar
drapel cz
Acesta este numele de gazdă al sistemului pe care rulează nginx (sau, în cazul lui Docker, numele aleatoriu al containerului).
Puncte:1
drapel us

Intenția ta pare să fie să treci prin conexiunea TLS prin nginx curent modul. Dacă doriți să vizați destinații diferite în funcție de câmpul SNI al antetului TLS, atunci trebuie să utilizați următoarea configurație:

harta $ssl_preread_server_name $destinație {
    host1.example.com backend1;
    host2.example.com backend2;
    backend implicit3;
}

curent {
    backend în amonte1 {
        server 192.168.100.1:443;
    }

    backend în amonte2 {
        server 192.168.100.2:443;
    }

    backend în amonte3 {
        server 192.168.100.3:443;
    }

    Server {
        asculta 127.0.0.1:443;
        proxy_pass $destinație;
    }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.