基于地理定位在负载平衡上替换html文件中的url?

时间:2015-03-27 04:36:04

标签: nginx g-wan

我有一个提供静态html页面的HTTP Web服务器。

在页面中,它会加载图片和图片。 css来自固定域名,如:

<img src="http://assets.mysite.com/1.jpg" />

实际上有几个不同的域提供相同的文件。例如。

  • assets-us.mysite.com
  • assets-eu.mysite.com
  • assets-asia.mysite.com

我希望根据访问者的地理位置将负载平衡替换为“assets.mysite.com”域名。

例如,当我从欧洲访问相同的网址时,我得到的html是:

<img src="http://assets-eu.mysite.com/1.jpg" />

当我从日本访问相同的网址时,我得到的HTML是

<img src="http://assets-asia.mysite.com/1.jpg" />

我更喜欢NGINX(或G-WAN)。是否可以仅通过一些配置或脚本设置来实现负载平衡?这种替代品对性能有何影响?

1 个答案:

答案 0 :(得分:0)

如果您的目标是尽可能地执行,那么您应该在DNS请求中执行geo-ip负载平衡 - 在查询Web服务器之前会重定向用户。 CDN以这种方式工作。

但是如果你不能这样做并希望从Web服务器管理负载平衡,那么最好的扩展方法是使用AS(ISP使用的网络)查找表来查找用户所在的区域位于。

执行此操作而不是搜索IP地址,将极大地减少数据库大小,从而加快操作速度。 IP数据库提供了更多细节,但规模要大得多。

对于G-WAN,如果要为不同的MIME类型实现不同的逻辑,则可以编写connection handlercontent-type handler(后者也可以简化开发,因为您不会解析查找资源类型的请求。)

如果数据库存储在本地(最好是RAM),G-WAN C / C ++ / C#脚本如果正确实施,将不会以明显的方式增加延迟。