媒体服务器和Web服务器 – 相同的IP地址,我该如何设置?

嗨,我试图build立一个网站,用户可以上传图片。 我想有一个独立的媒体服务器托pipe图像,以便networking应用程序可以指向图像

mediaserver.mysite.com/test123.jpg 

和networking服务器

 www.mysite.com 

我想知道的是,如果媒体服务器和networking服务器都坐在路由器后面,这将如何工作? 即只有一个端口80可用,所以mediaserver无法通过HTTP寻址。

此外,用户应该能够调出mediaserver.mysite.com/test123.jpg并查看图像

那么理想的用户会打电话

 www.mysite.com/media/test123.jpg 

但最终媒体是从另一台服务器提供的,可能位于与mysite.com完全不同的networking上

编辑:我在Apache上使用Django的Web服务器和lighttpd的媒体。

谢谢!

这是定期完成的。 我们有几十个网站都运行在一个IP地址上,运行数百个并不罕见。 您的Web服务器将检查请求的主机头并适当地提供服务。

有两种方法来实现这一点,它们都是相同的,但对于不同的Web服务器。 你没有指定你使用的是哪一个,所以这里是最常见的三个:

IIS 5/6

右键单击您的网站,然后转到“属性”。 在“IP地址”旁(网站选项卡上),单击高级。 您将在端口80中看到一个条目,没有主机标题名称。 删除此条目。

单击“添加”,然后在“TCP端口”下将其保留为80(对于SSL为443),然后在主机标题名称下input网站的名称(例如,mediaserver.mysite.com – 尽pipeexample.com是一个保留的名称,目的,但没关系)。 点击OK,然后点击OK进入下一个屏幕。 您现在可以通过mediaserver.mysite.com访问该网站(只有通过它,它不会再单独监听IP)。

IIS 7

与IIS 5/6相同,除了右键单击网站,您只需select它,然后在右侧菜单中select“绑定”

阿帕奇

我不经常configurationapache,所以我的内存很模糊,但是你在httpd.conf中使用了基于名字的VirtualHost指令。 从apache示例文档 :

 NameVirtualHost * <VirtualHost *> ServerName www.domain.tld DocumentRoot /www/domain </VirtualHost> 

(如果您使用的是Apache,我build议您阅读该文档页面的其余部分)。

当然,您只需要在您的networking服务器上设置基于名称的虚拟主机,以便知道如何区分不同的名称(“基于名称的虚拟主机”加上您的操作系统/ Web服务器在谷歌应该给你很多的帮助学科)。

你需要做的是基本上build立你的“路由器”作为代理。 它必须是一个完整的HTTP服务器,它接受传入的请求,并检查它们是否被定向到www.mysite.commediaserver.mysite.com ,并将请求转交给Web服务器或媒体基于此的服务器。 (也可以进行更细粒度的检查,例如寻找www.mysite.com/media的path并将其重写到mediaserver.mysite.com

如果您无法在路由器上真正运行HTTP代理,则至less应该能够将路由器configuration为将所有收到的HTTPstream量(在端口80上)引导至位于其后的特定机器机器可以是你的HTTP代理。

根据您的网站产生的负载types,您可以使代理服务器与Web服务器相同,或者使代理服务器与媒体服务器相同,这样您只需两台服务器即可,而不是三台服务器。 但是,这又取决于你在这些系统上加载多less负载(以及负载)。

仅供参考如果您打算使用Lighttpd,我build议您使用Nginx来代替。 logging越less越新,但更快,更轻,已经在使用它的站点数量上超过了Lighty。 Nginx也用于一些非常高调的网站,如Wordpress,Github和Hulu。 我使用Nginx作为前端,并为一个非常高的stream量站点提供静态文件,它运行的很好!