3

でウェブサイトを運営していhttpsます。https を持たないが単一のhttpプロトコルを持つ外部サーバー (外部ドメイン) から画像をロードする必要があります。

httpPHPまたはNode経由で画像のプロキシを処理する方法はありますか? したがって、次のような画像をレンダリングできます。

<img src="https://domain.com/proxy?url=http://externaldomain.com/image.jpg" />

アイデアは、画像をローカルに保存することを避け、表示するだけにすることです。

httpドメイン内で提供された画像をレンダリングしようとするとhttps、次のコンソール メッセージが表示さ れます。

https://domain.com/のページに、 http://externaldomain.com/image.jpgからの安全でないコンテンツが表示されました。

また、アドレス バー内の SSL (/https) ロック アイコンが灰色になります。

4

3 に答える 3

6

ノードを使用できます。これは、クライアントに送信する前にイメージ全体をメモリにロードする代わりに、イメージをパイプするだけです ( file_get_contentsphp で行うように)。ストリーミングを簡単にするために、この例で request を使用します。

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);
于 2013-06-15T05:13:06.800 に答える