ขณะนี้เรามีโซลูชันซอฟต์แวร์ที่ต้องการโทรหาที่บ้าน เช่น สำหรับการอัปเดตอัตโนมัตินั้นจำเป็นต้องติดต่อรีจิสทรีคอนเทนเนอร์ Azure เราถูกจำกัดให้มีการเชื่อมต่อขาออกเท่านั้น ตัวอย่าง.คอม
การเชื่อมต่อขาออกอื่นๆ ทั้งหมดจะถูกบล็อกโดยไฟร์วอลล์ของลูกค้าดังนั้นการเชื่อมต่อทั้งหมดที่เราต้องใช้ในการใช้งานซอฟต์แวร์จะต้องผ่านพร็อกซีย้อนกลับของเรา
ดังนั้นเราจึงสร้างพร็อกซีย้อนกลับเช่น ตัวอย่าง.com/acr/*
ซึ่งทำการเชื่อมต่อพร็อกซี ตัวอย่าง.azurecr.io
. นั่นคือทั้งหมดที่ทำงานได้ดี ปัญหาที่ฉันมีคือฉันจะทำอย่างไรกับ URL ที่ส่งคืนในคำตอบ
ตัวอย่างเช่นโดยการขออิมเมจนักเทียบท่าผ่าน example.com/arc/something
ฉันได้รับการตอบกลับเช่นนี้โดยบอกนักเทียบท่าว่าจัดเก็บ blobs ของคอนเทนเนอร์นักเทียบท่าไว้ที่ไหน
HTTP/1.1 307 เปลี่ยนเส้นทางชั่วคราว
ที่ตั้ง: https://weumanaged131.blob.core.windows.net/...e5698526-1gpll71q59//docker/registry/v2/blobs/sha256/a8/a87a....
เห็นได้ชัดว่าฉันไม่สามารถเชื่อมต่อกับ URL นี้ได้ เพราะฉันถูกจำกัดไว้ ตัวอย่าง.คอม
.
คำถาม: เป็นไปได้ไหมที่จะเขียนใหม่และแคช URL ตอบกลับด้วย URL เช่นนี้: example.com/acr/<UUID>
(ด้วย UUID แบบสุ่ม)? เมื่อเรียก URL นี้ผ่านพร็อกซีย้อนกลับ พร็อกซีย้อนกลับจะพร็อกซี URL ไปยัง URL ตำแหน่งเดิมตามที่แสดงด้านบน หากมีวิธีอื่นในการเปลี่ยนเส้นทาง URL ตอบกลับผ่านพร็อกซีย้อนกลับ ฉันยินดีรับฟัง
สิ่งนี้เป็นไปได้ด้วย nginx หรือไม่ ฉันไม่ได้จำกัดเฉพาะ nginx หากวิธีอื่นสามารถแก้ปัญหานี้ได้
ขอขอบคุณ,
ฟิลิปป์
แก้ไข: เพื่อให้ชัดเจน โซลูชันซอฟต์แวร์ได้รับการติดตั้งบนเครื่องภายในเครือข่ายของลูกค้า เครือข่ายของลูกค้าอนุญาตให้เชื่อมต่อขาออกเท่านั้น www.example.com
จากเครื่องนี้โดยเฉพาะ พร็อกซีย้อนกลับได้รับการติดตั้งบนเซิร์ฟเวอร์ในเครือข่ายของเรา (ในกรณีนี้คือในเครือข่ายคลาวด์ Azure ของเรา) ดังนั้นจึงเป็นไปไม่ได้ที่เราจะเรียกโดเมนอื่นจากเครื่องนี้