我从我的网络服务器向数千个网站(主要在美国)提供动态 javascript 文件(一个回显 javascript 的 PHP 文件)。我想通过在东海岸和西海岸各添加一个网络服务器来加快速度(每毫秒都很重要)。然后我希望根据查看者访问最近的服务器。是否有服务或方法可以根据查看者的位置检测哪个服务器应该提供 javascript?
答案1
@GruffTech,实际上,OSPF 根本不能用于他的解决方案,因为它主要是内部网络协议,而且我怀疑他是否会在遍布世界各地的服务器之间建立私人电路。
正如 GruffTech 所提到的,内容分发网络公司能够比你构建一个具有冗余、任播、全球多个数据中心等功能的适当系统更便宜地做到这一点。
您可以使用 DNS Anycast,或者至少使用类似 Cisco 的旧 LocalDirector(您可以使用 lvs 进行模拟)的方法。localdirector 方法实际上会拦截请求并根据一些内部指标将其平衡到最近的节点。我相信 LVS 补丁在获得 BGP 源时可以查看 ASPath。如果您托管在数据中心,您可能会发现很难获得 BGP 源。如果您在主管上执行 BGP4,请使用 bird 而不是 quagga。DNS Anycast 会向冲浪者提供靠近该冲浪者 DNS 服务器的 DNS 记录,但是,如果他们使用的 DNS 服务器离他们很远,这可能会给他们带来更糟糕的冲浪体验。我不喜欢重定向方法,因为您已经在那里建立了连接,为什么不直接向他们发送小负载呢。
请记住,地理位置接近并不总是意味着网络拓扑接近。南佛罗里达州的冲浪者从佐治亚州亚特兰大的枢纽获得的服务可能比从佛罗里达州迈阿密的枢纽获得的服务更好,因为 AT&T/Bellsouth 倾向于将其所有出口流量都推到亚特兰大。