微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在反向代理中重写和缓存响应 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 举报,一经查实,本站将立刻删除。