将http通信暂时重定向到另一台服务器

将http通信暂时重定向到另一台服务器,http,redirect,Http,Redirect,假设您有一个位于247上的盒子(专用服务器),还有几个盒子是未使用带宽的用户机器。假设您希望托管多个网页。专用服务器如何将http流量重定向到用户机器。希望web浏览器中的地址字段仍然显示正确的地址,而不是ip地址。我不想重定向到另一个网页,我想告诉web浏览器它应该从不同的服务器请求相同的网页。我一直在浏览3xx代码,我不认为它们是为这样的事情而设计的 它应该在以下方面发挥一些作用: 1.专用服务器始终在线。 2.用户机器启动并告诉专用服务器它处于联机状态。 (其他几个用户机器也可以这样做)

假设您有一个位于247上的盒子(专用服务器),还有几个盒子是未使用带宽的用户机器。假设您希望托管多个网页。专用服务器如何将http流量重定向到用户机器。希望web浏览器中的地址字段仍然显示正确的地址,而不是ip地址。我不想重定向到另一个网页,我想告诉web浏览器它应该从不同的服务器请求相同的网页。我一直在浏览3xx代码,我不认为它们是为这样的事情而设计的

它应该在以下方面发挥一些作用: 1.专用服务器始终在线。 2.用户机器启动并告诉专用服务器它处于联机状态。 (其他几个用户机器也可以这样做) 3.Web浏览器查找域名并发现它指向专用服务器。 4.Web浏览器请求页面。 5.专用服务器告诉web浏览器向用户计算机重复请求

是否可以使用某种重定向,最好告诉浏览器继续向用户计算机发送进一步的请求。用户机器可以在几乎任何时间点关闭,但假定用户机器将等待正在进行的事务完成,在GET或某些东西的中间没有关闭服务器程序。 在网络中,负载平衡是一种将工作负载均匀分布在两台或多台计算机、网络链路、CPU、硬盘或其他资源上的技术,以获得最佳资源利用率、最大吞吐量、最小化响应时间并避免过载。使用具有负载平衡的多个组件,而不是单个组件,可以通过冗余提高可靠性。负载平衡服务通常由专用程序或硬件设备(如多层交换机或DNS服务器)提供

还有更有趣的东西


除了负载平衡之外,您还需要在“用户机器”上设置或多或少类似的环境。

您需要的是位于web服务器前面的代理服务器或负载平衡器

web浏览器将始终与负载平衡器通信,负载平衡器将请求转发到几个后端服务器之一。客户端不需要重定向,因为客户端总是认为它只是在与负载平衡器通信

预计到达时间:

看看你的各种评论,重新阅读这个问题,我想我误解了你想做什么。我原以为所有提供内容的机器都在同一个网络上,但现在我看到您正在寻找更像p2p web服务器的设置

如果是这样的话,使用DNS和HTTP 30x重定向可能就是您所需要的。它可能看起来像这样:

  • 您的“主”服务器将作为应用程序的入口点,并且将具有众所周知的主机名,例如“www.myapp.com”

  • 每当新的“用户”计算机联机时,它都会向主服务器注册,主服务器会为该用户计算机创建或更新DNS条目,例如“user123.myapp.com”

  • 如果主服务器收到一个给定页面的请求,例如“www.myapp.com/index.htm”,它将根据为该机器创建的任何DNS条目执行302重定向到其中一台用户机器-例如,将它们重定向到“user123.myapp.com/index.htm”

  • 我发现这种方法存在一些问题:

    首先,一旦用户被重定向到用户机器,如果用户机器脱机,应用程序似乎就死了。您可以通过让每个页面上的所有链接专门指向“www.myapp.com”而不是使用相对链接来避免这种情况,但是每个请求都必须通过“主服务器”路由,这样效率相对较低

    您可以通过在用户机器脱机时更改其DNS条目以指向主服务器来潜在地解决此问题,但如果没有极短的TTL,这将不起作用


    另一个问题是跟踪会话。如果没有可供所有用户机器访问的某种共享会话状态服务器,您可能无法在这种设置中非常有效地使用会话。尽管Cookie仍然可以工作。

    这听起来像是由1部分组成的代理、1部分组成的负载平衡器和大约100部分组成的灾难


    如果让我猜的话,我会说你正在尝试建立某种类型的相对匿名的torrent。。。但我可能错了。如果我是对的,HTTP对于这样的东西是完全错误的协议。

    你可以使用dns,在我脑海中,你可以为每台为用户服务的机器设置一个主机名:

    www in A xxx.xxx.xxx.xxx # ip address of machine 1
    www in A xxx.xxx.xxx.xxx # ip address of machine 2
    www in A xxx.xxx.xxx.xxx # ip address of machine 3
    
    然后,当其他人联机时,您可以将以下内容添加到dns条目中:

    www in A xxx.xxx.xxx.xxx # ip address of machine 4
    
    唯一的问题是,您必须降低每个记录的生存时间(TTL)条目,使其更小(我认为默认值为86400-1天)


    如果一台机器坏了,你必须删除dns条目,尽管我认为这是给任何网站增加容量的最不密集的方式。杰夫·阿特伍德在这里有更多信息:

    有趣。用户机器如何知道事务正在继续?更重要的是,从一台用户机器到另一台用户机器的内容是相同的,还是它们提供完全不同的内容?主服务器如何知道每台客户机上都有什么?我投票决定将其迁移到SF:这是一个没有编程内容的网络qn。@Chris-他们可能提供不同的服务,但当然也会有很多冗余。这将有点像一个分布式哈希表。@Charles-Oops,对不起,谢谢,我是新来的。我的错误。我刚刚意识到我可能会使用dns而不是http来重定向客户端。但据我所知,dns是一种非常缓慢的重定向方式,是否总是这样?如果我拥有呢