Puncte:0

Rescrieți și stocați în cache adresele URL de răspuns în proxy invers

drapel id

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

Puncte:0
drapel us

Trebuie să utilizați un proxy direct precum Squid, nu un proxy invers precum nginx.

Instalați Squid pe www.example.com server și configurați soluția software pentru a utiliza proxy-ul de redirecționare la www.example.com.

Puncte:0
drapel fk

Nu sunt sigur că îl urmăresc în întregime, dar dacă aveți un proxy, de ce nu ar trebui să treacă totul pe lângă proxy? De ce un apel către weumanaged131.blob.core.windows.net nu trece prin proxy?

Doar pentru un test, într-un mediu Linux, proxy-ul poate fi setat pentru orice program/serviciu prin variabilele http_proxy și https_proxy. Posibil adăugarea lor la începutul script-ului de serviciu ar face truc. De exemplu. exportați http_proxy=http://proxy:port Și dacă necesită autentificarea utilizatorului: exportați http_proxy=http://nume utilizator:parolă@proxy:port În cazul docker, există mai multe trucuri, sau poate necesita variabile cu majuscule: HTTP_PROXY și HTTPS_PROXY.

phiob avatar
drapel id
Mulțumesc pentru răspuns, dar cred că nu am explicat bine ceva. Am editat postarea pentru a clarifica lucrurile. Nu avem instalat un proxy în general pe serverele noastre, doar un proxy invers pentru apelurile către adresele URL specifice.
djdomi avatar
drapel za
fie postați url-ul, fie ascundeți-l mi se pare că azurecr.io poate fi domeniul?

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.