在反向代理中重写和缓存响应 URL

问题描述

目前我们有一个需要打电话回家的软件解决方案,例如对于自动更新,它需要联系 Azure 容器注册表。我们仅限于与 example.com 的传出连接,所有其他传出连接都被客户的防火墙阻止。因此,我们运行软件所需的所有连接都必须通过我们的反向代理。

因此,我们创建了一个example.com/acr/* 这样的反向代理,它将连接代理到 example.azurecr.io。那一切正常。我的问题是如何处理答案中的返回 URL?

例如通过 example.com/arc/something 请求一个 docker 镜像,我得到了这样的响应,告诉 docker docker 容器 blob 的存储位置。

HTTP/1.1 307 Temporary Redirect
Location:   https://weumanaged131.blob.core.windows.net/...e5698526-1gpll71q59//docker/registry/v2/blobs/sha256/a8/a87a....

显然我无法连接到此 URL,因为我仅限于 example.com

问题:是否可以以某种方式重写和缓存响应 URL,其 URL 如下:example.com/acr/<UUID>(带有随机 UUID)?当通过反向代理调用此 URL 时,反向代理会将 URL 代理到原始位置 URL,如上所示。

这样的事情甚至可以用 Nginx 实现吗?我不限于 Nginx,如果其他解决方案可以解决这个问题。

谢谢, 菲利普

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)