Acelerar o Seu Servidor Apache Para Carregar em 2 Segundos

Como você pode acelerar o seu servidor Apache e carregar seu site em 2 segundos? Há muitas dicas rolando pela internet e muitos mitos, que na verdade só vão ocupar seu tempo. Mas com tudo isso espalhado por aí, você deve fazer algumas configurações para melhorar o seu servidor.

Ao longo de muitos anos, todos nós utilizamos várias maneiras de melhorar as velocidades de carregamento do servidor apache e do site. E isso inclui o uso de proxies, armazenamento em cache e muito mais.

As 10 principais dicas para causar maior impacto no Servidor Apache

Eu sempre tenho uma observação para lhe falar antes de fazer qualquer alteração em um servidor da Web. Faça backup de todos os sites hospedados no servidor, antes de fazer alterações. Feito isso, siga lendo.

Ativar o armazenamento em cache no Servidor Apache

O armazenamento em cache é provavelmente a maior etapa de aumento de velocidade enquanto otimiza seu servidor. Em muitos casos é possível reduzir o tempo de carregamento em mais de 50% em muitos sites, dependendo da aplicação.

Com o armazenamento em cache, o servidor Apache não precisa gastar tempo buscando arquivos do disco, executando o código do aplicativo. E também, buscando valores do banco de dados e montando o resultado em uma página HTML, cada vez, que alguém atualiza uma página.

O servidor pode simplesmente pegar um resultado processado e enviá-lo ao visitante. Veja como isso é fácil?

Existem vários locais nos quais você pode ativar o cache no Servidor Apache:

tipos de cache
Cache OpCode
Este é um resultado compilado de solicitações de páginas anteriores. Pode economizar vários segundos para aplicativos complexos como Magento ou Drupal
Cache de memória
armazena os bits de dados gerados pelos aplicativos na memória do sistema e, quando o mesmo bit de dados é solicitado, ele é exibido sem a necessidade de processamento. Mais rápido que o cache OpCode e ideal para grandes sites com carga balanceada.
Cache HTTP
Estes são proxies de servidores web que armazenam páginas HTML inteiras. Portanto, se a mesma página for solicitada, ela será imediatamente exibida. Este é de longe o mais rápido e é ideal para aplicativos web menores de alto tráfego.
Cache de aplicativos

alguns aplicativos, como o Magento e o Drupal, armazenam arquivos de modelo processados ​​como páginas para reduzir o tempo de processamento. Isso pode ser usado em conjunto com qualquer um dos caches acima.

Qualquer um desses caches pode melhorar a velocidade do seu servidor. MAS, você precisará fazer um pouco de tentativa e erro para saber qual combinação desses caches é ideal para seu aplicativo.

Se você não tem tempo para configurar, ou não tem o conhecimento técnico, então procure um especialista para cuidar disso para você. Seus usuários irão agradecer, quando entrarem no seu site.

Configurar um proxy reverso rápido

Seu servidor envia arquivos HTML para o navegador de um visitante. E se outro visitante solicitar o mesmo arquivo? Normalmente, o servidor busca os scripts do disco, executa, preenche os dados e monta o arquivo HTML.

Mas, não seria fácil e muito mais rápido apenas enviar esse arquivo da memória? Isso é o que um proxy reverso HTTP faz. Ele fica entre o seu servidor e os visitantes. Se um segundo cliente solicitar o mesmo arquivo, ele rapidamente exibirá o arquivo da memória. Isso é super rápido.

Quase todos os servidores da Web populares podem ser configurados como um proxy reverso. Citamos alguns que podem ser os melhores:

  1. Nginx - Este é o favorito dos sites mais visitados, de acordo com a pesquisa de janeiro de 2018 da Netcraft e pode está valendo até hoje. Ele provou ser confiável contra picos de tráfego e é uma aposta segura devido à sua estabilidade e personalização.
  2. Varnish - Um pouco mais complexo do que o Nginx para implantar, mas sites com tráfego intenso e muito conteúdo, podem ver um ganho considerável de velocidade com o Varnish.
  3. Lighttpd - Se você tem um site de monstros e picos de uso de recursos são comuns, o Lighttpd pode ajudá-lo. É leve e não é provável que arraste para baixo o servidor.

Naturalmente, há muito mais opções, como o Squid, o Apache, ou o IIS. Porém essas são as opções mais populares e bem-sucedidas.

Novamente, o ideal é para que o seu ambiente seja descoberto observando sua complexidade do aplicativo, o carregamento do site e sua configuração da web.

Escolha o servidor de aplicativos certo

Muitos proprietários de aplicativos usam aplicativos instalados por padrão em seus servidores. Por exemplo: sistemas operacionais CentOS usam PHP 5.6, até o mais recente PHP 8.1 com FPM - FastCGI Process Manager,  que possui enormes vantagens de velocidade.

Os proprietários de hospedagem VPS, Cloud e Servidores Dedicados, geralmente desconhecem as diferenças e continuam tentando otimizar o código do site para corrigir problemas de velocidade.

Apenas alterando o servidor de aplicativos, aprimorando as configurações para corresponder ao carregamento do site e habilitando o cache, é possível melhorar a velocidade de carregamento do aplicativo em mais de 100% em alguns casos.

Se você nunca alterou as configurações padrão do seu aplicativo, talvez você tenha uma dor de cabeça ao longo do tempo.

Ajuste seu servidor da web: Servidor Apache, Nginx, LiteSpeed, etc.

Isso, certamente, parece intuitivo e muitos proprietários de sites otimizam seus servidores da Web uma vez ou outra.

Mas aqui está o truque. À medida que os padrões de tráfego do seu site e a complexidade do site mudam, as configurações do servidor da Web também precisam ser ajustadas para manter o uso ideal dos recursos.

É melhor ter seus servidores da web auditados um por mês se você tiver um site ocupado com atualizações constantes.

Quase todos as hospedagens Linux têm o Servidor Apache como principal na web

Aqui estão algumas configurações que você pode tentar fazer para melhorar a performance:

Você as encontra no WHM em Apache Configuration, Global Configuration.

  • Tempo limite - essa configuração determina por quanto tempo o Apache esperará que um visitante envie uma solicitação. Isso deve ser definido com base no tráfego do servidor.
Em servidores ocupados, esse valor pode ser configurado para 120 segundos, mas é melhor manter esse valor o mais baixo possível para evitar o desperdício de recursos.
  • KeepAlive - quando KeepAlive é definido como On, o Apache usa uma única conexão para transferir todos os arquivos para carregar uma página. Isso economiza tempo no estabelecimento de uma nova conexão para cada arquivo.
  • MaxKeepAliveRequests - Essa configuração determina quantos arquivos podem ser transferidos por meio de uma conexão KeepAlive. A menos que exista uma razão para não, essa configuração pode ser definida como ilimitada.
  • KeepAliveTimeout - Esta configuração garante que uma conexão KeepAlive não seja violada. Ele diz quanto tempo o Apache deve esperar por uma nova solicitação antes de redefinir a conexão. Em servidores altamente carregados, 10 segundos é um bom limite.
  • MaxClients - Essa configuração informa ao Apache quantos visitantes podem ser exibidos simultaneamente.
  • Configurar muito alto causará o desperdício de recursos.
  • E também defini-lo muito baixo resultará em visitantes perdidos.

Por isso, você deve configurar um valor ideal com base na quantidade de visitantes de todos os sites nos servidores.

  • MinSpareServers & MaxSpareServers - O Apache mantém alguns trabalhadores em stand-by para lidar com um aumento súbito de solicitações. Se seu site é propenso a picos de visitas, configure essas variáveis. Em servidores altamente carregados, o valor 10 para MinSpareServers e o valor 15 de MaxSpareServers, podem ser um bom limite.
  • HostnameLookups - O Apache pode tentar descobrir o nome do host de cada IP que se conecta a ele. Mas isso seria um desperdício de recursos. Para evitar isso, você pode definir HostnameLookups como 0 ( zero). As vezes isso se parece confuso, mas você pode ir se habituando com todos estes recursos, lendo as dicas para cada ação.

Habilite o HTTP / 2

Esta é uma extensão para o ponto acima, mas obtém seu próprio título porque o HTTP / 2 é um desenvolvimento bastante recente e muitos não estão cientes de seus benefícios.

Todos os servidores da web agora usam o protocolo HTTP v1.1 por padrão. Mas todos eles têm suporte para HTTP v2, que é a versão mais recente e contém uma tonelada de melhorias de desempenho.

O HTTP / 2 melhora o tempo de resposta do servidor com:

  • Usando uma única conexão em vez de consumir conexões paralelas para transferir arquivos.
  • Transferindo arquivos importantes primeiro para completar uma página.
  • Usando a compactação para acelerar a transferência de cabeçalho.
  • Usando dados binários em vez de transferência de dados em texto volumoso.
24/09/2022 Update
PUSH inserindo todos os arquivos necessários para renderizar uma página antes que ela seja solicitada pelo navegador. Ele economiza segundos valiosos em sites usando vários CSS, JS e imagens. Estes estão basicamente todos os sites modernos.
  • Além disso, o HTTP / 2 exigirá que você use SSL, o que tornará seu site seguro por padrão.

Então, é realmente óbvio usar HTTP / 2.

No entanto, você precisa ter em mente várias coisas que precisa configurar ao configurar o HTTP / 2. Alguns destes são:

  1. Mudando todo o site para HTTPS. Você precisará definir redirecionamentos para links de sites.
  2. Certifique-se de que seus proxies reversos também estejam configurados corretamente para HTTP / 2.
  3. Atualize seu servidor da Web para uma versão que suporte o PUSH do servidor. O Nginx suporta isso na v1.13.9.

Desfragmentar suas tabelas de banco de dados e otimizar as configurações do servidor Apache

Todos os sites modernos usam bancos de dados para armazenar conteúdo do site, dados de produtos e muito mais.

Todos os dias, os visitantes publicam novos comentários, os Webmasters adicionam novas páginas, modificam ou removem páginas antigas e adicionam ou removem produtos listados.

Toda essa atividade deixa buracos nas tabelas do banco de dados. Essas são pequenas lacunas onde os dados foram excluídos, mas nunca foram preenchidos novamente. Isso é chamado de fragmentação e pode causar mais tempo de busca de dados.

Tabelas de banco de dados que tenham mais de 5% do seu tamanho como buracos devem ser corrigidas.

Portanto, todo mês, se possível, verifique as tabelas do banco de dados para fragmentação e execute uma consulta de otimização. Isso impedirá que seu site fique lento.

Otimizar as configurações do servidor de banco de dados

Toda vez que você atualiza seu aplicativo da web ou adiciona um novo plug-in ou módulo, o tipo de consultas executadas no banco de dados é alterado. E à medida que o tráfego para seu site aumenta, o número de consultas executadas no banco de dados aumenta.

Isso significa que a carga em seu banco de dados continua mudando à medida que seu site cresce e se torna mais complexo. Se as configurações do seu banco de dados não forem ajustadas para acomodar essas alterações, seu site será executado em gargalos de memória ou CPU.

É por isso que é importante monitorar métricas de banco de dados, como latência de consulta, consultas lentas, uso de memória, etc., e fazer alterações de configuração oportunas para evitar problemas.

Algumas das configurações do banco de dados comumente modificadas são:

  • max_connections - em servidores multiusuários, essa configuração é usada para impedir que um único usuário monitore o servidor inteiro. Em servidores compartilhados altamente carregados. Portanto, esse limite pode ser tão baixo quanto 10. E em servidores dedicados, pode chegar a 250.
  • innodb_buffer_pool_size - nos bancos de dados MySQL habilitados com o InnoDB, os resultados da consulta são armazenados em uma área de memória chamada buffer pool para acesso rápido. Isso pode ser definido no valor em qualquer lugar entre 50-70% da RAM disponível para o MySQL.
  • key_buffer_size - esta configuração determina o tamanho do cache para tabelas MyISAM. Isso é definido em aproximadamente 20% da memória disponível do MySQL.
  • query_cache_size - Isso é habilitado apenas para servidores de site único e está definido para 10 MB ou menos, dependendo de quão lentas as consultas são no momento.
Se o seu banco de dados não tiver sido otimizado em algum momento, o seu site pode ser devido por um.

Corrigir sua velocidade de consulta DNS

200 milissegundos - essa é a velocidade com que o Google quer que seu servidor responda. É praticamente o padrão agora.

E você sabe qual é a maior ameaça para esse tipo de velocidade de carregamento? Consultas DNS.

O DNS do seu site deve responder em 30 milissegundos ou menos. Mas, a maioria dos sites vão muito além da marca de 200 ms para a resolução do DNS. Isso é especialmente verdadeiro para o tráfego de fora do país onde o site esta hospedado.

O principal obstáculo aqui é a distância. À medida que a distância entre o navegador e o servidor DNS aumenta, levará mais tempo para execução.

A única maneira real de corrigir isso é usar um cluster DNS distribuído. Obtenha 3 servidores VPS de baixo custo em diferentes partes do mundo como na Europa, nos Estados Unidos, no Brasil e na Austrália. E em seguida, configure os servidores DNS mestre-escravo em todos eles.

Depois disso, otimize-o para uma execução rápida. Os detalhes de como fazer isso estão bem além do escopo deste artigo.

Reduza o caminho de processamento crítico do seu site

Caminho de renderização crítica é uma frase assustadora, mas é realmente simples.

O index.php do seu site é carregado primeiro. Nele, haverá links para CSS, JS e arquivos de imagens em seu site. Esses arquivos CSS podem ter outros links.

Quanto menor o número de arquivos e seu tamanho, necessários para carregar seu site, ele carregará mais rápido. Isso é o que significa Otimizar o Caminho de Renderização Crítico.

Então, se o seu site tem muitos plugins ou efeitos visuais, você pode ter certeza de que ele pode precisar de um pouco de otimização.

Como processamento crítico do site?

  1. Excluindo temas e plugins não utilizados.
  2. Reduzindo o tamanho das imagens.
  3. Combinando e minimizando arquivos JS e CSS.
  4. Compactando esses arquivos no disco.
  5. Adiando os arquivos desnecessários na segunda rolagem usando os métodos async ou defer.

Desativar serviços intensivos de recursos do Servidor Apache

Muitos proprietários de servidores não mexem com as configurações padrão em um servidor Apache. Então, eles não desativariam os serviços que nunca usam. Ele ficará lá consumindo memória e CPU.

E alguns até adicionam serviços, como backup e análise, além disso, o que geralmente é executado durante os horários de pico do tráfego do site.

Consertar isso é uma vitória fácil

Procure todos os serviços habilitados em seu servidor e desabilite os que você não precisa.

Para serviços pesados ​​de recursos, como backups, reprograme-os para a noite quando o tráfego do site estiver baixo.

A manutenção do servidor Apache pode ser uma dor de cabeça. Nossos administradores de servidor dedicados tiram essa carga de seus ombros. Clique aqui para saber mais.

Atualize seu disco rígido para o SSD no servidor Apache

OK, como último ponto, dê uma olhada no seu disco rígido.

A maior queda no desempenho do servidor Apache é a I/O de disco. Esse é o tempo que o disco rígido leva para girar. Girar e girar para coletar todos os dados de que seu site precisa.

Em 2019, você não precisa esperar por isso. Existem armazenamentos SSD que funcionam muito como a memória do servidor Apache.

Então, pegue um disco SSD para pelo menos sua partição de banco de dados. Só isso pode reduzir o tempo de carregamento em cerca de 10%.

Depois de tudo isso, certamente, o site obtém alguma melhoria no carregamento.

Teremos o maior prazer em ouvir seus pensamentos

Deixe uma Comentário


Temas Blog
Logo