Folosesc modulul de flux pentru a trece traficul tls unde nu pot inversa proxy-ul, de ex. pentru că nu am certificatul (instalare locală 3CX) sau rupe lucruri (ssl vpn cu client cert).
Apoi redirec „restul” la un alt IP pe aceeași gazdă (127.0.0.1) pentru reverse proxy.
Problema a fost că remote_addr nu a fost întotdeauna 127.0.0.1 și se pare că nu există nicio modalitate de a seta adresa „reală” de la distanță.
Pentru a evita acest lucru, am activat proxy_protocol și am folosit $proxy_protocol_addr.
Cu toate acestea, acest lucru întrerupe toate site-urile web de trecere și nu am găsit o modalitate de a activa condiționat proxy_protocol numai pentru „implicit”
Fac toate acestea ca să pot potrivi pe sni și să folosesc un singur IP pentru toate site-urile web.
Nu sunt obținut să o fac exact în acest fel, dacă cineva are o idee cum să realizeze asta într-un mod diferit/mai bun, sunt urechile.
curent {
harta $ssl_preread_server_name $targetBackend {
3cx.example.com 192.168.1.2:443;
vpn.example.com 192.168.1.3:443;
implicit 127.0.0.1:443;
}
Server {
asculta 192.168.1.100:443;
proxy_connect_timeout 1;
proxy_timeout 3s;
rezolutor 192.168.1.1;
proxy_protocol activat;
proxy_pass $targetBackend;
ssl_preread on;
}
deci... cum să faci proxy_protocolul condiționat (afaik dacă pur și simplu nu funcționează în contextul fluxului) sau să-l rezolvi în alt mod?