【发布时间】:2016-07-22 18:03:49
【问题描述】:
我创建了一个简单的基于 Web 的电子邮件客户端,例如 gmail。我想显示图像,但为了在我的 ssl 网站上执行此操作,我需要通过 ssl 提供的所有图像(否则我会收到“混合内容”警告)。所以我需要一个像 gmail 这样的反向代理来提供这些图像。
我将重写电子邮件中的所有图像 url 以指向反向代理。例如:
我的反向代理是https://myreverseproxy.com
原图网址http://stuff.com/image1.jpg
我会将网址改写为https://myreverseproxy.com?image-url=http://stuff.com/image1.jpg
当反向代理收到请求“https://myreverseproxy.com?image-url=http://stuff.com/image1.jpg”时,会从查询参数image-url(http://stuff.com/image1.jpg)中获取原图,获取图片,返回给https://myreverseproxy.com?image-url=http://stuff.com/image1.jpg的请求者。
是否有开箱即用的服务?我能写一个简单的吗?是否已经有任何库或解决方案可以安装在某个地方?
我对任何语言和任何平台都持开放态度...我只想解决这个问题。
【问题讨论】:
-
仅供参考,您可以设置网络服务器,例如Apache 或 nginx 作为反向代理。如果您需要更大的灵活性,请使用 HAProxy。很容易找到所有这些的指南。将它们与您的应用程序分开运行,并添加会话/令牌身份验证以确保安全。
-
附带说明 - 您可能会考虑将图像嵌入电子邮件而不是使用图像服务器,大多数电子邮件客户端(如果不是全部)默认情况下会阻止图像链接,除非收据白名单发件人。此外,如果将电子邮件发送给外部各方,如果他们多次阅读电子邮件,这种方法将节省您的带宽成本。
-
谢谢@Hang。这仅适用于传入的电子邮件(来自我的系统之外)。当我们发送电子邮件时,我们会将图像 url 交换回它们的原始地址,这样外面的人就不会访问我们的反向代理了。事实上,我们将通过 IP 锁定它。
标签: https gmail reverse-proxy mixed-content