Hiện tại chúng tôi có một giải pháp phần mềm cần gọi về nhà, ví dụ: để cập nhật tự động, nó cần liên hệ với cơ quan đăng ký vùng chứa Azure. Chúng tôi bị hạn chế chỉ có các kết nối gửi đi đến ví dụ.com
, tất cả các kết nối gửi đi khác đều bị chặn bởi tường lửa của khách hàng.Do đó, tất cả các kết nối mà chúng tôi cần để vận hành phần mềm đều phải thông qua proxy ngược của chúng tôi.
Do đó, chúng tôi đã tạo một proxy ngược như ví dụ.com/acr/*
cái nào ủy quyền kết nối tới ví dụ.azurecr.io
. Đó là tất cả làm việc tốt. Vấn đề tôi gặp phải là tôi phải làm gì với các URL trả về trong câu trả lời?
Ví dụ: bằng cách yêu cầu hình ảnh docker qua example.com/arc/something
Tôi nhận được phản hồi như thế này, cho docker biết nơi lưu trữ các đốm màu docker container.
HTTP/1.1 307 Chuyển hướng tạm thời
Vị trí: https://weumanaged131.blob.core.windows.net/...e5698526-1gpll71q59//docker/registry/v2/blobs/sha256/a8/a87a....
Rõ ràng là tôi không thể kết nối với URL này, vì tôi bị hạn chế ví dụ.com
.
Câu hỏi: Bằng cách nào đó có thể viết lại và lưu trữ các URL phản hồi bằng một URL như sau: example.com/acr/<UUID>
(với một UUID ngẫu nhiên)? Khi gọi URL này thông qua proxy ngược, proxy ngược sẽ ủy quyền URL tới URL vị trí ban đầu như được hiển thị ở trên. Nếu có một giải pháp khác để chuyển hướng các URL phản hồi thông qua proxy ngược của tôi, thì tôi rất vui khi được nghe giải pháp đó.
Là một cái gì đó như thế này thậm chí có thể với nginx? Tôi không bị hạn chế đối với nginx, nếu một số giải pháp khác có thể giải quyết vấn đề này.
Cảm ơn bạn,
Philipp
Chỉnh sửa: Để làm rõ mọi thứ, giải pháp phần mềm được cài đặt trên một máy bên trong mạng của khách hàng. Mạng khách hàng chỉ cho phép các kết nối gửi đi đến www.example.com
từ chiếc máy đặc biệt này. Proxy đảo ngược được cài đặt trên máy chủ trong mạng của chúng tôi (trong trường hợp này là trong mạng đám mây Azure của chúng tôi). Do đó, chúng tôi không thể gọi các tên miền khác từ máy này.