Mantengo un sitio con un montón de archivos descargables. Actualmente está alojado en un servidor en los EE. UU., Pero recientemente adquirí un nuevo servidor en Alemania. Me gustaría reflejar las descargas al servidor en Alemania, y tener un script PHP en el primer servidor (que aloja el sitio web) detectar qué archivo espejo usar en función de la ubicación del usuario. Por ejemplo, si el usuario está en Canadá, debería descargar el archivo de mi servidor actual en los EE. UU. Si están en Francia, deberían obtener el archivo de Alemania, en lugar de descargarlo a través del Atlántico. ¿Cómo, entonces, puedo determinar a qué país están más cerca?Determinar el espejo más cercano PHP
Conozco MaxMind GeoIP, y lo tengo instalado, pero eso solo me da un país, y AFAIK, no hay manera de determinar automáticamente a cuál de mis dos países espejo es el país más cercano. Supongo que lo que podría hacer es ir por continente: haga que los usuarios de Asia, Europa, África y Australia obtengan el contenido de Alemania y que los visitantes de Norte y Sudamérica obtengan el archivo de los EE. UU. Si alguien puede pensar en una solución mejor , Estoy abierto a sugerencias.
Bueno, supongo que me voy a ir con mi idea original de verificar por continentes. Para otros que buscan hacer este tipo de cosas, ese será un buen lugar para comenzar. El problema vendrá cuando tenga múltiples espejos en Europa, pero la idea del continente tendrá que funcionar por el momento.
se podría llamar los mapas de Google a través de la API de Google y calcule la distancia entre el país en el que vive el usuario de IP y sus dos destinos de servidor, en función de cuál de ellos es el más cercano, establezca el espejo de descarga. Entonces solo tienes dos variables estáticas. Uno para cada ubicación del servidor. –
Estoy fuera de mi área con esto, pero creo * que hay una forma de usar DNS para manejar esto ...? Una pequeña búsqueda produce esto: http://stackoverflow.com/questions/1040545/how-to-dispatch-network-requests-to-the-geographically-closest-server – Aerik
@Jonasm: no es una mala idea, pero te creo no se puede simplemente usar la API de Maps para calcular la distancia, en realidad tiene que mostrar un mapa, que definitivamente es insatisfactorio en este caso. –