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