如何构建PHP/Node代理以在https网站上呈现外部http映像?

Nik*_*iko 3 php ssl https proxy node.js

我有一个网站正在运行https.我必须从没有https但是单一http协议的外部服务器(外部域)加载图像.

有没有办法http通过PHP或Node 处理图像代理?所以我可以渲染这样的图像:

<img src="https://domain.com/proxy?url=http://externaldomain.com/image.jpg" />
Run Code Online (Sandbox Code Playgroud)

我们的想法是避免在本地保存图像,但只显示它们.

当我尝试httphttps域内呈现服务图像时,我收到此控制台消息:

https://domain.com/上的页面显示了来自http://externaldomain.com/image.jpg的不安全内容.

同样,地址栏中的SSL(/ https)锁定图标变为灰色.

Min*_*God 6

你可以使用node,它只是管道图像,而不是在发送到客户端之前将整个图像加载到内存中(就像file_get_contents在php中一样).在此示例中使用请求以简化流式传输:

var https = require('https');
var url = require('url');
var request = require('request');

var server = https.createServer(function (req, res) {
  var queryData = url.parse(req.url, true).query;

  if (queryData.url) {
    var x = request(queryData.url);
    req.pipe(x).pipe(res);
  } else {
    res.writeHead(400, {"Content-Type": "text/plain"});
    res.end("No url");
  }
});

// Listen on port 443
server.listen(443);
Run Code Online (Sandbox Code Playgroud)