În prezent avem o soluție software care trebuie să sunați acasă, de ex. pentru actualizarea automată, trebuie să contacteze un registru de containere Azure. Suntem restricționați să avem doar conexiuni de ieșire către exemplu.com, toate celelalte conexiuni de ieșire sunt blocate de firewall-urile clienților.Prin urmare, toate conexiunile de care avem nevoie pentru a opera software-ul trebuie să treacă prin proxy-ul nostru invers.
Prin urmare, am creat un proxy invers ca example.com/acr/* care face proxy conexiunea la exemplu.azurecr.io. Toate acestea funcționează bine. Problema pe care o am este ce fac cu adresele URL care revin în răspuns?
De exemplu, prin solicitarea unei imagini docker prin exemplu.com/arc/ceva Primesc un răspuns ca acesta, spunându-i docker unde sunt stocate blob-urile containerului docker.
HTTP/1.1 307 Redirecționare temporară
Locație: https://weumanaged131.blob.core.windows.net/...e5698526-1gpll71q59//docker/registry/v2/blobs/sha256/a8/a87a....
Evident că nu mă pot conecta la această adresă URL, pentru că sunt limitat la exemplu.com.
Întrebare: Este cumva posibil să rescrieți și să memorați în cache adresele URL de răspuns cu o adresă URL ca aceasta: exemplu.com/acr/<UUID>(cu un UUID aleatoriu)? Când apelați această adresă URL prin proxy invers, proxy-ul invers va trimite adresa URL către adresa URL a locației inițiale, așa cum se arată mai sus. Dacă există o altă soluție pentru a redirecționa adresele URL de răspuns prin proxy-ul meu invers, mă bucur să le aud.
Este posibil așa ceva cu nginx? Nu sunt limitat la nginx, dacă o altă soluție poate rezolva această problemă.
Mulțumesc,
Philipp
Editare: Pentru a clarifica lucrurile, soluția software este instalată pe o mașină din rețeaua clientului. Rețeaua clienților permite doar conexiuni de ieșire către www.example.com de la această mașină specială. Proxy-ul invers este instalat pe serverul din rețeaua noastră (în acest caz, în rețeaua noastră Azure cloud). Prin urmare, nu este posibil să apelăm alte domenii de pe această mașină.