nginx代理通过负载均衡器redirect

我有几个使用LVS进行负载均衡的后端Web服务器。 这些机器上只有内部不可路由的IP。 负载均衡器是唯一具有外部IP的机器。 这个设置很好。 我想添加另一个Web服务器的图像服务,但它不会是负载平衡池的一部分。 是否有可能代理从负载平衡的Web服务器传递到图像服务器,并将响应redirect到客户端?

客户端 – >外部LB – >内部Web服务器 – >内部映像服务器

当我从等式中删除LB时,我已经获得了代理通行证的工作,但是尝试使用它时没有运气。

你可以试试HAproxy,而不是LVS。 在http模式下,它识别像处理域名的“主机”这样的标题。 这样你可以直接将静态文件代理到“内部映像服务器”

另一种方法是请求另一个外部IP,并运行具有不同configuration的LVS的两个副本 – 一个用于dynamic,一个用于静态文件,绑定在不同的外部IP上。

我会得到一个新的外部ip的服务器应该承载的图像,并绑定链接到http://img.yourdomain.com/内的图像,所以我不会复杂的存在的架构。 否则,我看到他们有KTCPVS: http : //kb.linuxvirtualserver.org/wiki/KTCPVS_HTTP这应该是支持URL模式路由。

你想通过这样做获得什么? Nginx已经非常擅长静态媒体了,非常擅长caching媒体。 使代理连接(通过原始的Web服务器)到一个静态内容服务器看起来是多余的(不好的一种),并增加了networking开销,因为stream量将不得不通过nginx服务器返回来交付。

由于无论如何都会通过LVS box(en)传输stream量,为什么不直接将stream量直接传送到映像服务器,并使用与上述海报所述的不同域名引用。

如果你真的不想额外的域参考(你应该考虑它,从用户端加快你的网站),有LVS发送/图像的stream量直接到图像服务器,它是有能力的第7层路由。

底线是如果你试图从Web服务器上卸载,你应该从Web服务器上移除负载。 代理可能会节省你的磁盘空间在这些机器上,但没有什么别的,因为他们仍然需要处理请求并通过stream量。