我有2台服务器,我们可以称它们为A和B. 服务器A有一个面向公众的网站,它有适当的域名,每个人都可以通过互联网访问它。 服务器B与服务器A位于同一网络中。 服务器B有一个运行域名为http://b.domain.local/
的内部网站因此,服务器A可以访问服务器B的网站内容,所有页面,img等...
在Server B的网站中,几乎没有动态脚本图像链接,例如链接: 的 http://b.domain.local/img.php?Action=view&ID=5 这只会返回一张图片,并会显示一些数字的状态。
我需要将此图像放在服务器A的其中一个网页上,以便将其显示给公众。
这可能吗?我怎么能这样做? 我认为这类似于一些基于Web的代理站点: 客户 - >请求服务器A,服务器A - >请求服务器B,服务器B将值返回给服务器A,服务器A将结果返回给客户端... 不是吗?
我在服务器A上使用C#MVC4。
由于
河
答案 0 :(得分:0)
我猜你在服务器A上使用IIS?您是否可以共享包含服务器B上的映像的文件夹,并在服务器A上的IIS中设置指向服务器B上的共享的虚拟目录。因此,您仍然可以将其保留在服务器B上,但在服务器A上公开提供。当然,假设您有一个实际的图像文件要分享。
或者,您可以选择一个可以获取图像的代理页面。我之前在网站上完成了这项工作并且确实有效,但这样做会产生更多的开销。如果图像是从您为服务器B提供的链接动态生成的,那么这将是唯一的选项,因为公众将无法直接访问它。
我将使用以下代码实现代理样式页面:
Response.ContentType = "image/jpeg";
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse httpWebReponse = (HttpWebResponse)httpWebRequest.GetResponse();
Stream stream = httpWebReponse.GetResponseStream();
Image _Image = Image.FromStream(stream);
_Image.Save(Response.OutputStream, ImageFormat.Jpeg);