Nginx en tant que GeoIP Global LoadBalancer et distance réelle du serveur d'applications

0

mon client utilise Magento pour sa solution globale de commerce électronique. Les pays principaux sont US / EU / CN. Pour l'instant, 1 seule machine virtuelle en Italie, desservant tout le trafic.

Je souhaite créer 3 machines virtuelles, une pour chaque pays, sur AWS ou Google Cloud, sans importance à ce stade.

Maine DNS 1.2.3.4 doit pointer sur un site www.mydomain.it, où 1.2.3.4 est une machine virtuelle nginx (en Europe datacenter) configurée avec le module MaxMind GeoIP.

Ce site Web contient plusieurs langues et plusieurs catalogues / prix / quantités pour chaque pays. Avec nginx, je peux transmettre les en-têtes nécessaires et variables à Magento afin que le cms sache quelle langue afficher aux clients de différents pays.

Ma question est la suivante: lorsque le trafic atteindra nginx vm et passera par proxy, par exemple, sur un serveur américain, le serveur américain servira-t-il réellement le trafic américain, ou le trafic américain sera-t-il toujours acheminé via la machine virtuelle nginx, de sorte qu'il ralentira?

Mon objectif est simplement de transférer le trafic sur la machine virtuelle correspondante en fonction du pays du visiteur. Cette machine virtuelle servira donc le trafic et non la machine virtuelle nginx.

x86fantini
la source

Réponses:

1

Si vous lisez la première réponse à cette question https://stackoverflow.com/questions/25678049/how-to-setup-global-load-balancing-using-digital-ocean-dns-and-nginx, vous verrez plusieurs façons de réalisez cela, redirection 30x, Anycast (en tirant parti du routage BGP) et Geo-DNS. Route53 (mentionné par @ frederico-sierra) ne suffit pas, vous devez ajouter CloudFront.

Sébastienvg
la source
Merci très bonne lecture. Bien que ma principale question demeure: si je place un proxy inverse pour, par exemple, un centre de données européen et un trafic i proxy_pass vers une machine virtuelle dans un centre de données américain, même si l'utilisateur final se trouve aux États-Unis, le trafic doit toujours aller aux États-Unis -> UE (proxy inversé géoIP) -> US vm. Corretct? N'importe quel moyen de "seulement" renvoyer du trafic vers US vm et de ne servir que du trafic depuis cette machine virtuelle?
x86fantini
L'idée est d'utiliser Geo-DNS et de laisser un proxy dire dans chaque pays ou continent que vous souhaitez desservir, alors tous ces proxys peuvent utiliser le même serveur Web comme serveur principal. Si vous configurez proxy_cache, la rapidité ne devrait pas poser de problème, car chaque nginx servira la plupart des données de son cache local.
sebastienvg
Donc "oui" si je mets un proxy_pass dans l'UE sur une machine virtuelle américaine, le trafic sera toujours acheminé via ce proxy inverse nginx dans l'UE ... Je cherchais Rage4 GeoDNS, et comme je n'ai pas besoin d'une couche inversée supplémentaire région, je peux frapper directement la machine virtuelle dans chaque région. Merci alors de m'aider à comprendre
x86fantini