问题描述
目前我们有一个需要打电话回家的软件解决方案,例如对于自动更新,它需要联系 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 (将#修改为@)