Roteamento de servidor da Web com base na localização

5

Eu tenho um site que tem usuários de Hong Kong e da Austrália.

Infelizmente, como o servidor está localizado na Austrália, os usuários de Hong Kong vão sofrer problemas de latência. O tráfego tem que passar por EUA antes de viajar de volta para a Austrália.

Então eu configurei um servidor em Hong Kong também, e os usuários que usam o TLD .hk serão redirecionados para o servidor web de Hong Kong. Ele compartilha o mesmo servidor de banco de dados com o servidor australiano, mas devido ao cache agressivo de consultas SQL, o impacto no desempenho da latência de consultas SQL é insignificante.

Mas para usuários acostumados com o site de Hong Kong, mas que já viajaram para a Austrália, eles sofrem latência adicional porque vão para o site .hk, que redireciona para o servidor HK mesmo quando estão na Austrália. O site é direcionado a estudantes internacionais de Hong Kong, então esse é um assunto importante para mim.

Em vez de redirecionar os usuários para o servidor da Web mais próximo com base no TLD, como redirecionar os usuários com base em sua localização?

Atualmente estou usando nginx, postgres e Django. Digamos que eu saiba como estimar a localização dos usuários com base nos endereços IP dos usuários, qual é o próximo passo? Em que nível eu trabalharia? Que tópico devo ler?

    
por Eric 13.12.2012 / 04:38

1 resposta

3

Uma opção é usar o módulo GeoIP no nginx e redirecionar seu usuário para o site apropriado. Nesse cenário, a solicitação será lenta até ser redirecionada para o site apropriado.

A segunda opção é o DNS. Use a solução baseada em Geo DNS. Você pode ler mais sobre isso neste tópico . O GeoDNS não funciona caso os usuários usem o DNS do Google ou o OpenDNS

    
por 13.12.2012 / 05:05

Tags