Meu site www.example.com (SSL ativado) está hospedado na hospedagem compartilhada Amazon EC2. Carrega mais rápido (tempo de carregamento <2 segundos) em uma conexão wifi / banda larga. O problema está na rede 3G no celular ** (modo H e não no modo H +) **. Inicie uma fase de conexão e o processo de handshake SSL leva muito tempo - 12 segundos. Monitorou os parâmetros de tempo na guia Rede do Chrome. Abaixo está o tempo de carregamento medido para a página da web.
Tipo de dados manipulados na página: A página da Web testada recebe 5 dados JSON emparelhados com valor-chave por meio do AJAX e os exibe na página da Web. É uma página muito leve, com apenas 5-6 conteúdo de texto.
Vi muitos sites carregarem mais rapidamente em uma rede móvel 3G (modo H). Meu site está muito lento durante a fase inicial do estabelecimento da conexão em uma rede 3G. Alguém pode me ajudar em como resolver / otimizar o atraso na fase inicial da conexão? A mudança para hospedagem dedicada resolverá o problema atual?
O servidor Web não está ocupado e sempre há muita CPU e memória disponíveis.
Configuração do servidor: Instância Amazon EC2 - Hospedagem compartilhada (32 CPU e 60 GB RAM). Servidor Web - Apache. SSL - Symantec.
fonte
Respostas:
Conexão inicial
Você descobrirá que a conexão inicial inclui a negociação do SSL; portanto, como o handshake é alto, é um bom indicador de que algo está seriamente errado com a maneira como você configurou o SSL.
Handshake SSL e TTFB
Você tem dois problemas principais: o tempo gasto na conclusão de um handshake SSL e os servidores aguardando TTFB (tempo até o primeiro byte).
Também deve ser observado que, ao testar com dispositivos 3G / 4G, pode causar primeiros bytes mais longos devido ao fato de os sinais telefônicos variarem de intensidade ... isso pode causar problemas de conexão intermitentes e tempos de latência variáveis.
Etapa 1: investigando o problema do SSL
É bastante óbvio que você tem um problema sério de SSL e provavelmente devido a uma instalação defeituosa do OpenSSL ou similar. Comece testando seu certificado SSL usando o SSL Labs e, em seguida, corrigindo quaisquer problemas ou avisos sugeridos.
Se o SSL ainda estiver operando lentamente, é provável que você tenha um servidor sobrecarregado ou uma falha no servidor. Se for o mais tarde, você precisará tentar diminuir onde está a falha. Use a pilha de falhas do servidor, caso precise de mais assistência sobre esse assunto, um usuário relatou que a criação de novas chaves resolveu um problema lento de SSL que ele estava enfrentando que pode ou não ser relevante.
Os balanceadores de carga podem ajudar se for um problema de recurso do servidor.
Etapa 2: Investigando o TTFB
Depois de investigar, resolver o problema do SSL e você ainda tiver um TTFB aumentado, deverá testar seu servidor, garantindo que ele tenha recursos suficientes.
O tempo do primeiro byte é influenciado, mas não limitado a:
Às vezes, aumentar a CPU e a RAM nem sempre é a melhor opção. Às vezes, é melhor introduzir um balanceador de carga, porque não apenas significa que você pode executar vários servidores facilmente lado a lado, mas na verdade descarrega solicitações de cache e SSL. Alguns outros benefícios incluem:
Dicas para diminuir o seu TTFB:
fonte
Lendo o título da sua pergunta , há duas coisas que você pode fazer para acelerar a conexão inicial e o handshake SSL / TLS. Como funcionam para qualquer conexão, não apenas para 3G, você deve usá-las como prática recomendada de qualquer maneira.
Primeiro, use HTTP / 2 para servir o site. Isso requer o Apache 2.4.17 ou posterior .
Segundo, configure o Apache para usar o grampeamento OCSP. Isso requer o Apache 2.3.3 ou posterior, mais o OpenSSL 0.9.8h ou posterior, com um bom guia para configurá-lo aqui . O grampeamento OCSP não acelera as coisas, mas faz parte do trabalho do cliente e poupa o trabalho de tentar uma pesquisa OCSP.
Lendo o texto do corpo da sua pergunta , acho que você tem um problema muito maior com o seu ambiente de hospedagem. Esses tempos de carregamento são inaceitáveis. Você menciona que é 'hospedagem compartilhada', deve entrar em contato com quem estiver gerenciando essa hospedagem compartilhada e perguntar por que o servidor é tão incomumente lento. Provavelmente, é melhor tentar um host compartilhado diferente ou executar um VPS por conta própria (isso é mais trabalhoso, mas oferece melhor velocidade e flexibilidade).
Como você já está na AWS, por que não tentar o nível gratuito para testar as coisas e fazer com que seu próprio servidor funcione e seja otimizado? Use-o com um subdomínio e algumas páginas HTML estáticas para teste e, em seguida, mova o site principal (aumentando os limites da camada gratuita, se necessário).
fonte