Mostrando postagens com marcador Apache HTTP Server. Mostrar todas as postagens
Mostrando postagens com marcador Apache HTTP Server. Mostrar todas as postagens

Como melhorar a performance do seu servidor Apache

Em um mundo cada dia mais dinâmico, nada pior do que ter que esperar as coisas. Isso tem que ser levado muito em conta quando se trata de sites na Internet, principalmente os que vendem online. Esse é o motivo pelo qual você deve se preocupar, e muito, com a performance do seu site.

De acordo com a Forrester Consulting, em 2006, compradores online esperavam que uma página web carregasse em até 4 segundos e, hoje, esse mesmo cliente espera que essa página carregue em 2 segundos ou menos. A Amazon, pouco tempo atrás, descobriu que aumentou sua receita em 1% a cada 100 milisegundos de ganho em performance, e um estudo comprovou que cada segundo gasto na abertura de uma página pode representar 5% a menos de conversão para a sua loja.

Htaccess direto ao ponto

Os arquivos .htaccess oferecem um meio de fazer mudanças nas configurações do diretório. Um arquivo contendo uma ou mais diretrizes de configurações é colocado em um diretório em particular. Enquanto isso as diretrizes se aplicam para aquele diretório e todos os seu subdiretórios subseqüentes. No geral, se usa arquivos .htaccess quando você não tem acesso ao arquivo de configuração principal do servidor.

Confira o modelo abaixo que apresenta uma coleção de dicas para otimização de performance, de fácil entendimento e manipulação. Este modelo não prescreve nenhuma filosofia, apenas auxilia o desenvolvimento.

# Fontes de Kroc Camen: camendesign.com/.htaccess
# Adaptação de Leonardo Moreira: leonardomoreira.com.br/htaccess

RewriteEngine on

# Definindo o idioma. Recursos como x-webkit-speech (http://migre.me/46mS9) usam o idioma padrão.
DefaultLanguage pt-BR

# Se você usa uma index page diferente do padrão do servidor, defina abaixo:
DirectoryIndex main.html

# Definindo o fuso horário do servidor
SetEnv TZ America/Sao Paulo

# Remove assinatura do servidor
ServerSignature Off

# Exibe 404 para uma reescrita se uma pasta de mesmo nome não existir
Options -MultiViews 

# Impede de navegar em pastas sem um documento padrão (index)
Options -Indexes

# Para habilitar a navegação no diretório use:
# Options +Indexes

# Página 404
ErrorDocument 404 /404.html

# Previnindo acesso
<filesmatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$"="">
 Order Allow,Deny
 Deny from all
</filesmatch>

#
# Forçando a última versão do IE, em vários casos quando ele poderia voltar ao modo IE7
# Use ChromeFrame se estiver instalado
#

<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    BrowserMatch MSIE ie
    Header set X-UA-Compatible "IE=Edge,chrome=1" env=ie
  </IfModule>
</IfModule>

#
# É preciso informar os proxies alterações de conteúdo baseado em UA
#
<IfModule mod_headers.c>
  Header append Vary User-Agent
</IfModule>

#
# Permite o acesso de todos os domínios para as web fontes.
#

<FilesMatch ".(ttf|otf|eot|woff|font.css)$">
  <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
  </IfModule>
</FilesMatch>

# Forçando a codificação
AddDefaultCharset utf-8
AddCharset utf-8 .html .css .js .xml .json .rss

#
# Filetypes adicionais
#

# video
AddType video/ogg                      ogg ogv
AddType video/mp4                      mp4
AddType video/webm                     webm

# Servindo SVG do jeito certo. Necessário para webfonts SVG no iPad
# twitter.com/FontSquirrel/status/14855840545
AddType     image/svg+xml              svg svgz
AddEncoding gzip                       svgz

# webfonts
AddType application/vnd.ms-fontobject  eot
AddType font/truetype                  ttf
AddType font/opentype                  otf
AddType font/woff                      woff

# variados
AddType image/vnd.microsoft.icon       ico
AddType image/webp                     webp
AddType text/cache-manifest            manifest
AddType text/x-component               htc
AddType application/x-chrome-extension crx

AddType application/rss+xml .rss
AddType text/remarkable  .rem
AddType text/plain  .do # “to.do” files

# Compressão gzip
<IfModule mod_deflate.c>

  # html, txt, css, js, json, xml, htc:
  AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
  AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
  AddOutputFilterByType DEFLATE text/xml application/xml text/x-component

  # webfonts e svg:
  <FilesMatch ".(ttf|otf|eot|svg)$" >

    SetOutputFilter DEFLATE
  </FilesMatch>

</IfModule>

#
# Fazendo cache de recursos com Expires HTTP
# Lembre-se de assumir controle de versão com cache-busting
#
# Ex. <script src="master.js?20100608"></script>
#
# Mais detalhes em: stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
#

<IfModule mod_expires.c>
  Header set Cache-Control "public"
  ExpiresActive on

  ExpiresDefault                          "access plus 1 month"
  ExpiresByType text/cache-manifest       "access plus 0 seconds"
  ExpiresByType text/html                 "access plus 0 seconds"

  # Dados
  ExpiresByType text/xml                  "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType application/json          "access plus 0 seconds"

  # Feed RSS
  ExpiresByType application/rss+xml       "access plus 1 hour"

  # Favicon (não pode ser renomeado)
  ExpiresByType image/vnd.microsoft.icon  "access plus 1 week" 

  # Imagens, vídeo, audio;
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpg                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"

  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"

  # Webfonts
  ExpiresByType font/truetype             "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType font/woff                 "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

  # CSS / jScript
  ExpiresByType text/css                  "access plus 1 month"
  ExpiresByType application/javascript    "access plus 1 month"
  ExpiresByType text/javascript           "access plus 1 month"
</IfModule>

#
# Estamos usando HTTP Expires, não precisamos do ETag, desativar!
#
FileETag None

# Permite que cookies sejam enviados por iframes (somente IE). Descomentar para usar.
#
# <IfModule mod_headers.c>
#   <Location />
#     Header set P3P "policyref="/w3c/p3p.xml", CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT""
#   </Location>
# </IfModule>

# no-www, retira o "www" e redireciona.
<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

iMasters