基于位置的 Web 服务器路由

基于位置的 Web 服务器路由

我有一个网站,其用户来自香港和澳大利亚。

不幸的是,由于服务器位于澳大利亚,香港用户将遭遇延迟问题。流量必须经过美国才能返回澳大利亚。

因此,我也在香港设置了一台服务器,使用 .hk TLD 的用户将被重定向到香港网络服务器。它与澳大利亚服务器共享同一个数据库服务器,但由于积极的 SQL 查询缓存,SQL 查询延迟对性能的影响可以忽略不计。

但对于习惯使用香港网站但后来前往澳大利亚的用户来说,他们会遭遇额外的延迟,因为他们访问 .hk 网站时,即使他们在澳大利亚,该网站也会重定向到香港服务器。该网站面向来自香港的留学生,所以这对我来说是一个重大问题。

我如何根据用户的位置重定向用户,而不是根据 TLD 将用户重定向到最近的 Web 服务器?

目前我正在使用 nginx、postgres 和 Django。假设我知道如何根据用户的 IP 地址估计用户的位置,我的下一步是什么?我应该在哪个级别上工作?我应该阅读哪些主题?

答案1

一种选择是使用 nginx 中的 GeoIP 模块并将用户重定向到相应的站点。在这种情况下,请求将很慢,直到重定向到相应的站点。

第二种选择是 DNS。使用基于 Geo DNS 的解决方案。您可以在此处阅读更多相关信息线. 如果用户使用 Google DNS 或 OpenDNS,则 GeoDNS 不起作用

相关内容