Puncte:0

Solicitări de proxy/direcționare către subdomenii către diferite adrese IP locale/wireguard?

drapel cn

Avem o mașină virtuală cu o adresă IPv4 publică, la care nostru exemplu.com și *.example.com puncte de domeniu.

Avem mai multe computere low-tech distribuite care stabilesc o conexiune/tunel wireguard cu mașina virtuală accesibilă publicului.

Dorim ca mașina virtuală să servească un site web pe porturi 80/443, acceptați conexiuni ssh prin port 22, și altele.

Ne dorim ca computerele low-tech să fie accesibile public, prin intermediul subdomeniilor respective, cum ar fi low-tech-01.example.com, low-tech-02.example.com, etc. și solicitările de proxy/routare către adresele IP locale/wireguard respective. Acest lucru ar trebui să funcționeze pentru site-uri web prin porturi 80/443, conexiuni ssh prin port 22, și altele.

Editați | ×: În mod ideal, certificatele SSL ar trebui să fie furnizate de la computerele low-tech, iar conexiunea SSL nu ar trebui să fie terminată pe mașina virtuală.

Editați | ×: În mod ideal, cheile private ssh pentru stabilirea conexiunii la calculatoarele low-tech nu ar trebui să existe pe mașina virtuală, ci doar pe client.

Editați | ×: Pentru ssh, am putea deschide și direcționa un port unic pentru fiecare dintre computerele low-tech de la care public_IPv4:22xxx la local/wireguard_IP:22

Din păcate, după ce am petrecut două zile cu încercări și erori de configurare nginx, ne-am gândit că probabil că această sarcină nu poate fi rezolvată doar de nginx.

Notă: ssh nu trimite SNI; nginx nu poate asculta pe aceleași porturi pentru http precum și curent conexiuni; si poate mai multe probleme.

Dar, de asemenea, suntem complet fără idei și copleșiți de ce abordare ar putea într-adevăr rezolvă în mod corespunzător această sarcină.

(www\.)?example.com â> IPv4 public â> site web, ssh etc.

low-tech-01.example.com â> IPv4 public â> ??? ~> 10.0.0.101 â> site web, ssh etc.

low-tech-02.example.com â> IPv4 public â> ??? ~> 10.0.0.102 â> site web, ssh etc.

â¦

Vă mulțumesc pentru sfat și timp.

â

Editați | ×: Următorul nginx curent config este aproape de ceea ce încercăm să realizăm. Singurul dezavantaj (poate) este că ar trebui să definim manual un port pentru fiecare computer low-tech, în loc să îl gestionăm dinamic ca pentru conexiunile SSL.

curent {
  harta $ssl_preread_server_name $nume {
    example.com example.com;
    www.example.com example.com;
    low-tech-01.example.com low-tech-01.example.com;
    low-tech-02.example.com low-tech-02.example.com;
  }

  exemplu în amonte.com {
    server 127.0.0.1:8443;
  }

  în amonte low-tech-01.example.com {
    server 10.0.0.101:443;
  }

  în amonte low-tech-02.example.com {
    server 10.0.0.102:443;
  }

  Server {
    asculta 443;
    proxy_pass $nume;
    ssl_preread on;
  }

  Server {
    asculta 22101;
    proxy_pass 10.0.0.101:22;
  }

  Server {
    asculta 22102;
    proxy_pass 10.0.0.102:22;
  }

  â¦
}
Ivan Shatsky avatar
drapel gr
Poate că puteți utiliza comanda `s_client` de la mașinile client când vă conectați prin protocolul SSH? Verificați [acest](https://serverfault.com/a/1023845/498657) răspuns.
A.B avatar
drapel cl
A.B
Aruncă o privire la acest Q/A pentru a înțelege limitarea: https://serverfault.com/questions/878080/how-do-i-make-protocol-foo-hostname-aware
Puncte:0
drapel us

Trebuie să obțineți mai multe adrese IP pe server, una pentru fiecare dintre subdomeniile pe care doriți să le utilizați.

Apoi, trebuie să atribuiți o adresă IP publică fiecărui VM. După aceea, puteți lega subdomeniul la adresa IP. În VM, se poate face redirecționarea portului către destinația finală dorită.

fooness avatar
drapel cn
Multumesc pentru raspuns.Din păcate acest lucru nu rezolvă problema. Dacă ar fi disponibile adrese IPv4 publice, atunci nu am avea nevoie de VM pentru a trimite/proxy/direcționa solicitările.
drapel us
Aceasta este singura opțiune pentru SSH dacă doriți să mapați domenii la diferite instanțe. O altă opțiune este porturile TCP separate pentru fiecare domeniu și apoi redirecționarea portului.
fooness avatar
drapel cn
Porturi TCP separate pentru fiecare domeniu este ceea ce am ajuns să folosim deocamdată, da. Ne dorim, totuși, ca acest lucru să se întâmple într-un fel dinamic în loc să creăm manual o intrare pentru fiecare port în, de ex. blocul nostru `stream` nginx.
drapel us
Oricare ar fi mecanismul, trebuie să-i gestionezi cumva configurația. Un sistem de management al configurației ar trebui să vă ajute.

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.