gpt4 book ai didi

https - 轻松的反向代理,可通过ssl提供图像

转载 作者:行者123 更新时间:2023-12-04 17:08:13 25 4
gpt4 key购买 nike

我创建了一个简单的基于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的请求者。

是否有开箱即用的服务?我可以写一个简单的吗?我是否可以为此安装任何库或解决方案?

我对任何语言和平台都开放...我只想解决此问题。

最佳答案

我建议使用与Tudor相同的东西:用node编写的代理。

但是,我建议使用更广泛使用和测试的库,例如node-http-proxy。设置非常简单,用不到20行的代码就可以实现您所需要的。

var httpProxy = require('http-proxy')

httpProxy.createServer({
target: {
host: 'stuff.com',
port: 80
},
ssl: {
key: fs.readFileSync('./ssl-key.pem', 'utf8'),
cert: fs.readFileSync('./ssl-cert.pem', 'utf8')
}
}).listen(443);

如果客户端随后访问 https://reverseproxy.com/image.png ,则过程将如下所示

enter image description here

我已经假定在这种模式下,反向代理与为图像提供服务的Web服务器在不同的服务器上运行,但这不是必须的。如果它们都在同一台服务器上运行,则只需在 host: 'localhost'部分中使用 target

--

以防万一您不熟悉Node,这是您需要执行的操作以便快速运行此设置。
  • 安装节点
  • 创建一个新文件,其中包含 yourprojectpath/index.js中的代码
  • 通过在项目目录
  • 中运行npm init来生成package.json文件
  • 运行npm install --save http-proxy以安装http-proxy库,并能够在代码
  • 中使用它

    现在,您应该可以通过运行以下命令来运行反向代理
    node index.js

    如果您打算在生产中使用它,我强烈建议您看看PM2。它是节点的进程管理器,基本上可以确保您的应用程序始终处于运行状态,无论如何。特别是,如果从应用程序引发了任何类型的异常并导致其终止,它将重新启动它。

    安装:
    npm install -g pm2

    用法:
    pm2 start index.js

    还有一些注意事项:
  • 确保您的.pem文件具有适当的权限和所有者。 chmod 400通常是一个不错的选择(仅供所有者读取)。但是,运行Node应用程序的用户应该能够读取它们。
  • 如果您的服务器在(软件或硬件)防火墙后面运行,则可能需要打开端口443,以接收传入流量
  • (取决于您的SSL证书提供商),您可能需要转换它将为您提供PEM格式的文​​件
  • (如果需要),node-http-proxy支持additional options,例如在请求被代理时添加 header
  • 我上面介绍的脚本假定您在与
  • 相同的目录中有ssl-key.pemssl-cert.pem
    希望对您有所帮助!然后问一下您是否不清楚

    关于https - 轻松的反向代理,可通过ssl提供图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381612/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com