Mi sitio web www.example.com (SSL habilitado) está alojado en un alojamiento compartido Amazon EC2. Se carga más rápido (tiempo de carga <2 segundos) en una conexión wifi / banda ancha. El problema está en la red 3G en el móvil ** (modo H y no H +) **. Iniciar una fase de conexión y el proceso de protocolo de enlace SSL lleva mucho tiempo: 12 segundos. Supervisé los parámetros de tiempo a través de la pestaña Red de Chrome. A continuación se muestra el tiempo de carga medido para la página web.
Tipo de datos manejados en la página: la página web probada recibe 5 datos JSON emparejados de valor clave a través de AJAX y los muestra en la página web. Es una página muy ligera con solo 5-6 contenidos de texto.
He visto muchos sitios web cargar más rápido en una red móvil 3G (modo H). Mi sitio web es demasiado lento durante la fase inicial de establecimiento de la conexión en una red 3G. ¿Puede alguien ayudarme a resolver / optimizar el retraso en la fase de conexión inicial? ¿Pasar a un hosting dedicado resolverá el problema actual?
El servidor web no está ocupado y siempre hay mucha CPU Y memoria disponible.
Configuración del servidor: instancia de Amazon EC2: alojamiento compartido (32 CPU y 60 GB de RAM). Servidor web - Apache. SSL: Symantec.
fuente
Respuestas:
Conexión inicial
Descubrirá que la conexión inicial incluye la negociación de SSL, por lo que, dado que el apretón de manos es alto, es un buen indicador de que algo está muy mal con la forma en que configuró el SSL.
Apretón de manos SSL y TTFB
Tiene dos problemas principales: el tiempo dedicado a completar un protocolo de enlace SSL y los servidores que esperan TTFB (tiempo hasta el primer byte).
También debe tenerse en cuenta que cuando se prueba con dispositivos 3G / 4G puede causar primeros bytes más largos debido al hecho de que las señales del teléfono varían en intensidad ... esto puede causar problemas de conexión intermitentes y tiempos de latencia variables.
Paso 1: investigar el problema de SSL
Es bastante obvio que tiene un problema grave de SSL y probablemente debido a una instalación defectuosa de OpenSSL o similar. Comience probando su certificado SSL utilizando SSL Labs y luego corrigiendo cualquier problema o advertencia que sugiera.
Si el SSL sigue funcionando lentamente, lo más probable es que tenga un servidor sobrecargado o un error del servidor. Si es más tarde, deberá intentar reducir la ubicación de la falla. Utilice la pila de Fallas del servidor si necesita más ayuda sobre este asunto, un usuario informó que la creación de nuevas claves resolvió un problema de SSL lento que él / ella estaba encontrando que puede o no ser relevante.
Los equilibradores de carga pueden ayudar si se trata de un problema de recursos del servidor.
Paso 2: Investigando el TTFB
Una vez que haya investigado, haya resuelto el problema de SSL y aún tenga un TTFB aumentado, entonces debe probar su servidor asegurándose de que tenga suficientes recursos.
El tiempo del primer byte está influenciado por, pero no limitado a:
A veces, aumentar la CPU y la RAM no siempre es la mejor opción. A veces es mejor introducir un equilibrador de carga porque no solo significa que puede ejecutar fácilmente varios servidores uno al lado del otro, sino que en realidad descarga las solicitudes de almacenamiento en caché y SSL. Algunos otros beneficios incluyen:
Consejos para bajar tu TTFB:
fuente
Al leer el título de su pregunta , hay dos cosas que puede hacer para acelerar la conexión inicial y el protocolo de enlace SSL / TLS. Funcionan para cualquier conexión, no solo para 3G, por lo que debe utilizarlos como la mejor práctica de todos modos.
Primero, use HTTP / 2 para servir el sitio. Esto requiere Apache 2.4.17 o posterior .
En segundo lugar, configure Apache para usar el engrapado OCSP. Esto requiere Apache 2.3.3 o posterior más OpenSSL 0.9.8ho posterior, con una buena guía para configurarlo aquí . El grapado OCSP no acelerará las cosas, pero hará parte del trabajo para el cliente y les ahorrará la molestia de intentar una búsqueda OCSP.
Al leer el texto del cuerpo de su pregunta , creo que tiene un problema mucho mayor con su entorno de alojamiento. Esos tiempos de carga son inaceptables. Usted menciona que se trata de "alojamiento compartido", debe ponerse en contacto con quien administra ese alojamiento compartido y preguntar por qué su servidor es tan inusualmente lento. Probablemente sea mejor probar un host compartido diferente o ejecutar un VPS usted mismo (esto es más trabajo, pero ofrece una mayor velocidad y flexibilidad).
Como ya está en AWS, ¿por qué no prueba su nivel gratuito para probar y hacer que su propio servidor funcione y se optimice? Úselo con un subdominio y algunas páginas HTML estáticas para probar y luego mueva su sitio primario (escale más allá de los límites de nivel libre si es necesario).
fuente