2011-12-25 11 views
14

Actualmente estoy ejecutando un pequeño programa de PHP al que acceden dos grupos de personas, un grupo en China y el otro en Irlanda. El servidor está alojado en Irlanda, y sin dudas las páginas cargan entre 0.3 y 0.8 segundos.Cómo acelerar la carga de sitios web para el lado opuesto del planeta

Los chinos están registrando tiempos de entre 3,0 segundos y 10 segundos.

He realizado pruebas de velocidad y los chinos tienen una conexión a Internet de 1,5 mbit (servidor de prueba en Irlanda) y un ping de 750ms.

Hasta ahora, para mejorar el tiempo de carga, he rehecho gran parte de la interacción de la base de datos MySQL para maximizar la eficiencia, pero esto no ayudó. Supongo que esto solo reduce ligeramente el tiempo de proceso del servidor, pero tiene poco efecto en el tiempo de descarga de la página.

Estaba pensando, podría conseguir hosting en China, y usar esto como una puerta de enlace para el sistema en Irlanda. Sin duda, la latencia y la velocidad de descarga entre este servidor chino sería mejor que la persona promedio ... Y las solicitudes de personas promedio habrían sido reencaminadas aquí.

¿Esto suena del todo factible? ¿O alguien más tiene sugerencias en relación con esto?

+0

Bueno, ciertamente mejoraría el tiempo de carga, pero tendrá que mantener las bases de datos sincronizadas. Si esa tarea se puede hacer cada hora o cada día, entonces la solución puede funcionar, si necesita sincronización en línea, está de regreso en el punto uno. – Yaniro

Respuesta

7

Su mayor problema es la latencia.Si puede minimizar las solicitudes http, debería ver grandes ganancias.

Pero, probablemente sea más fácil simplemente comprar los servicios de una red de distribución de contenido y moverles todos sus archivos estáticos, asegurándose de que tengan servidores bien conectados en China e Irlanda. Creo que esto es más fácil que rediseñar su sitio web.

El golpe más barato para el dinero vendría de enviar encabezados http adecuados para indicar a los navegadores web que no necesitan consultar constantemente con sus servidores para la validación de la frescura (no haga las solicitudes http condicional). Si puede hacer esto para todos los objetos externos de la página web (imágenes, css, js, etc.), la carga de la primera página aún tardará 10 segundos o lo que sea, pero las cargas de página posteriores deberían ser muy similares a las de los visitantes irlandeses. Esto es solo una cuestión de configuración del servidor web. Heres a tutorial si es necesario. Para ser sincero, enviar encabezados amistosos de caché siempre es una buena idea, así es como obtienes esos sitios web ágiles y receptivos que todos amamos.

+0

Muchas gracias por este valioso puntero, creo que así es como voy a hacerlo. – user1020317

1

Hospedaje/espejo en China es definitivamente el camino a seguir. Será más rápido para la gente de allí y más confiable. Lo ideal es que también lo tenga alojado en Irlanda, y tenga algún tipo de equilibrio de carga en su lugar.

+0

Esta es una gran idea, y probablemente la mejor solución. Sin embargo, el equilibrio de carga global no es el más fácil de realizar. ya que puede haber problemas para mantener sincronizados los datos y los activos, sin mencionar la complicación de configurar el equilibrio de carga global, ya sea a través de DNS o una solución de hardware. –

2

En primer Follow best practices to speed up you website .A continuación, compruebe también YSlow para medir la velocidad de su sitio y comprobar lo que puede hacer para mejorar el rendimiento. Creo que cambiar de servidor no le dará un mejor tiempo de respuesta. Creo que primero debe preocuparse por la optimización y luego buscar una buena y poderosa empresa de hosting y un plan de hosting.

Saludos

+3

O Pagespeed de Google: https://developers.google.com/pagespeed/ – ZippyV

1

, sin duda reflejar su sitio a un servidor en algún lugar de Asia. Ya hiciste algunas mejoras en el rendimiento que no dieron como resultado mejores resultados de China, así que supongo que la latencia de la red está causando la mayoría de los tiempos de carga.

Puede implementar su sitio web en uno de los servicios en la nube. Amazon EC2 instancias están disponibles en Singapur y Tokio, por ejemplo. O puede implementarlo en un proveedor de servicios web "regular" en China.

Si tiene que entregar archivos principalmente estáticos, busque un servicio de red de distribución de contenido (CDN).

+0

Poner una instancia de EC2 en Singapur haría muy poco para ayudar a la velocidad. Llegué a esta página porque nuestros visitantes chinos están experimentando baja velocidad, y todos nuestros servidores base se encuentran en la región de AWS de Singapur. Espero que Tokio sea una situación similar. –

1

Para acelerar el tiempo de carga, puede considerar alojar sus archivos estáticos (imágenes, css, javascript, documentos) en un CDN (Content Delivery Network). Los CDN funcionan alojando sus archivos en múltiples nodos en todo el mundo. Una vez que recibe una solicitud, el servidor más cercano al visitante servirá el archivo, lo que reduce la latencia.

Es posible que desee probar CloudFlare (http://cloudflare.com), es un producto gratuito que sirve como proxy inverso y CDN de su sitio web. En lugar de que el usuario acceda directamente al sitio, CloudFlare será el que acceda a su sitio y lo optimice para su entrega al visitante.

0

Estoy en el proceso de hacer lo mismo. Crearé un espejo de sitio en la nube de aliyun.com. Estoy alojando mi sitio (www.discoverwish.com) en el sitio web en Singapur, pero los tiempos de carga para mis usuarios chinos sin VPN es increíblemente lento.

voy a utilizar rsync para mantener la información sincronizado, entonces redirigir a los usuarios chinos usando DNSPod

0

Con respecto a este comentario: "Es posible que desee probar CloudFlare (http://cloudflare.com), que es un producto gratuito que sirve como una proxy inverso y CDN de su sitio web. En lugar de que el usuario acceda al sitio directamente, CloudFlare será el que acceda a su sitio y lo optimice para su entrega al visitante ".

Hemos intentado esto para un cliente en China pero, desafortunadamente, CloudFlare aún no tiene una versión local de su CDN trabajando en China. Actualmente estamos probando el CDN de Amazon, que parece tener críticas positivas.

Cuestiones relacionadas