23 de jul. de 2014

Configurando cache em memória e disco no Apache2 para Ubuntu 12.04 LTS



Web caching é uma forma de melhorar o desempenho do servidor, permitindo que o conteúdo solicitado seja armazenado em um local de acesso mais rápido. Isso permite que o usuário acesse o conteúdo mais rapidamente.
Procurando no diretório "/etc/apache2/mods-available" vamos encontrar vários arquivos de configurações dos módulos.

Configurando cache em memória

Para verificar as configurações do mod_mem_cache precisamos abrir o arquivo:

sudo nano /etc/apache2/mods-available/mem_cache.conf

<IfModule mod_mem_cache.c> 
      CacheEnable mem / 
      MCacheSize           4096 
      MCacheMaxObjectCount  100 
      MCacheMinObjectSize     1 
      MCacheMaxObjectSize  2048 
</IfModule>

Essas configurações só vão ter efeito após carregar o mod_mem_cache. Isso pode ser feito da seguinte maneira:



sudo a2enmod mem_cache
sudo service apache2 restart

Com isso habilitamos o mod_mem_cache e também o mod_cache.



CacheEnable mem /

A linha "CacheEnable mem /" diz para o apache criar uma um cache em memória para o conteúdo armazenado no diretório root "/".



MCacheSize 4096
MCacheMaxObjectCount 100

As próximas linhas dizem o tamanho do buffer para cache e a quantidade máxima de objetos em memória.



MCacheMinObjectSize 1
MCacheMaxObjectSize 2048

As próximas duas linhas dizem a respeito dos arquivos que serão armezenados em memória. Apenas arquivos entre 1 byte e 2 kilobytes serão permitidos para cache.


Configurando cache em disco

Examinando o arquivo de configurações do mod_disk_cache, podemos algumas poucas possibilidades de configuração:

sudo nano /etc/apache2/mods-available/disk_cache.conf
<IfModule mod_disk_cache.c>
 CacheRoot /var/cache/apache2/mod_disk_cache
 #CacheEnable disk /
 CacheDirLevels 5
 CacheDirLength 3
</IfModule>

Essas configurações são habilitadas apenas se carregarmos o mod_disk_cache. Que pode ser feito digitando os comandos:



sudo a2enmod disk_cache
sudo service apache2 restart

Com esse comando acabamos de habilitar o mod_cache.



CacheRoot /var/cache/apache2/mod_disk_cache
#CacheEnable disk /

O "CacheRoot" especifica onde o cache será mantido. O "CacheEnable disk /" é desabilitado por padrão, sugerimos que habilite no seu virtual host para ter uma melhor idéia do que será feito cache.



CacheDirLevels 5
CacheDirLength 3

Cada elemento em cache é um hash da sua URL e o hash é usado como um nome de arquivo e caminho de diretório.

O CacheDirLevel diz quando diretórios vão ser criados para o hash de string e CacheDirLength diz quantos caracteres cada diretório pode ter.

Por exemplo se um arquivo possuir o hash "abcdefghijklmnopqrstuvwxyz". Para um CacheDirLevels 2 e um CacheDirLength de 4 teremos o seguinte arquivo:



[path_of_cache_root]/abcd/efgh/ijklmnopqrstuv

Nenhum comentário:

Postar um comentário