我有一个网站,有来自香港和澳大利亚的用户。
不幸的是,由于服务器位于澳大利亚,因此来自香港的用户将会遇到延迟问题。 在返回澳大利亚之前,交通必须经过美国。
所以我在香港也build立了服务器,使用.hk顶级域名的用户将被redirect到香港的网站服务器。 它与澳大利亚服务器共享相同的数据库服务器,但由于主动的SQL查询caching,SQL查询延迟对性能的影响可以忽略不计。
但对于习惯了香港网站但已经去过澳大利亚的用户来说,他们会因为进入到香港服务器的.hk网站而感到额外的延迟,即使他们在澳大利亚也是如此。 该网站是针对来自香港的国际学生,所以这对我来说是一个重要的问题。
与其将用户redirect到基于顶级域名的最接近的Web服务器,我如何根据用户的位置redirect用户?
目前我正在使用nginx,postgres和Django。 说我知道如何根据用户的IP地址来估计用户的位置,我的下一步是什么? 我会在什么级别上工作? 我应该读什么题目?
一种select是在nginx中使用GeoIP模块并将用户redirect到适当的站点。 在这种情况下,请求将缓慢,直到redirect到适当的网站。
第二个选项是DNS。 使用基于Geo DNS的解决scheme。 你可以阅读更多关于它在这个线程 。 如果用户使用Google DNS或OpenDNS,GeoDNS不起作用