В настоящее время у нас есть программное решение, которое нужно звонить домой, например. для автоматического обновления необходимо связаться с реестром контейнеров Azure. Мы ограничены только исходящими подключениями к пример.com
, все остальные исходящие соединения блокируются брандмауэрами клиентов.Поэтому все соединения, необходимые для работы программного обеспечения, должны проходить через наш обратный прокси-сервер.
Поэтому мы создали обратный прокси, например пример.com/acr/*
который проксирует соединение с пример.azurecr.io
. Вот все нормально работает. У меня проблема: что мне делать с возвращаемыми URL-адресами в ответе?
Например, запросив образ докера через example.com/arc/что-то
Я получаю такой ответ, сообщая докеру, где хранятся большие двоичные объекты контейнера докера.
HTTP/1.1 307 Временное перенаправление
Расположение: https://weumanaged131.blob.core.windows.net/...e5698526-1gpll71q59//docker/registry/v2/blobs/sha256/a8/a87a....
Очевидно, я не могу подключиться к этому URL, потому что я ограничен пример.com
.
Вопрос: Можно ли каким-то образом переписать и кэшировать URL-адреса ответа с таким URL-адресом: example.com/acr/<UUID>
(со случайным UUID)? При вызове этого URL-адреса через обратный прокси-сервер обратный прокси-сервер проксирует URL-адрес исходного URL-адреса местоположения, как показано выше. Если есть другое решение для перенаправления URL-адресов ответов через мой обратный прокси-сервер, я буду рад их услышать.
Возможно ли что-то подобное с nginx? Я не ограничен nginx, если какое-то другое решение может решить эту проблему.
Спасибо,
Филипп
Редактировать: чтобы было понятно, программное решение устанавливается на машину в сети клиента. Сеть клиента разрешает только исходящие соединения www.example.com
именно с этой машины. Обратный прокси-сервер установлен на сервере в нашей сети (в данном случае в нашей облачной сети Azure). Поэтому мы не можем вызывать другие домены с этой машины.