Î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ă.