Depois de ter visto como usar o Nginx como proxy reverso, explicarei neste tutorial como configurar o cache de elementos estáticos (imagem, arquivos css, js….).
Usar o cache reduzirá o número de solicitações HTTP ao servidor web e, portanto, reduzirá a carga de trabalho.
O primeiro passo será criar uma pasta no servidor que armazene o cache.
sudo mkdir /var/cache/nginx_cache_sitename
Você pode criar a pasta de cache onde quiser no servidor, caso ative o cache em vários sites (virtualhost), aconselho separar as pastas.
Agora que temos a pasta, passaremos para a configuração do virtualhost.
Abra o arquivo virtualhost:
sudo nano /etc/nginx/sites-available/sitename
Você deve primeiro declarar o cache usando o parâmetro proxy_cache_path que deve ser adicionado antes do bloco{} do server
Para isso usaremos o parâmetro proxy_cache_path para indicar a configuração do cache.
proxy_cache_path /var/cache/nginx_cache_sitename levels=1:2 keys_zone=cache_name_site:10m max_size=4g inactive=60m use_temp_path=off;
Esta linha é utilizada para configurar a localização do cache, bem como seu tamanho e tempo de vida. O parâmetro keys_zone é importante, pois iremos utilizá-lo para indicar qual cache será utilizado.
Agora configuraremos o virtualhost para usar o cache para arquivos estáticos.
A configuração é feita no bloco server{}
declarando um bloco location{}
.
O código abaixo permite cache de elementos estáticos (imagem, fonte, css e js).
# Cache IMG/CSS/JS/Font
location ~* \.(?:jpg|jpeg|gif|png|ico|woff2|css|js)$ {
proxy_cache cache_name_site;
proxy_pass https://taget_server_or_name;
proxy_ssl_verify off;
include proxy_params;
add_header X-Cache-Status $upstream_cache_status;
}
Como você pode ver, é igual a uma configuração, exceto que adicionamos o parâmetro proxy_cache com o valor da chave de cache que foi configurada.
O parâmetro add_header X-Cache-Status $upstream_cache_status; permite adicionar o cabeçalho de resposta da solicitação se o cache tiver sido usado.
O que nos dá em um navegador:
Depois que a configuração do cache for adicionada ao virtualhost, teste a configuração:
sudo nginx -t
Recarregue a configuração para levá-la em consideração:
sudo systemctl reload nginx
Algumas informações adicionais
Limpe o cache do Nginx:
Para limpar o cache, basta esvaziar a pasta:
sudo rm -rf /var/cache/nginx_cache/*
Existe outro método que usa um URL.
Cache na memória – RAM
Também é possível utilizar a RAM do servidor para ter um cache ainda mais rápido.
Crie a pasta de cache:
sudo mkdir -p /var/cache/nginx_ram
Monte a pasta na RAM:
sudo mount -t tmpfs -o size=2G tmpfs /var/cache/nginx_ram
Tudo que você precisa fazer é configurar esta pasta como local de cache.
Pour rendre persistant le montage :
Abra o arquivo /etc/fstab:
sudo /etc/fstab
Adicione a seguinte linha, adaptando-se à sua configuração:
sudo tmpfs /var/cache/nginx_ram tmpfs defaults,size=2G 0 0
Vous savez maintenant comment configurer le cache avec Nginx dans une utilisation en tant que reverse proxy.
O uso do cache é prático quando o Nginx é colocado no front end, isso permite limitar o número de solicitações HTTP ao servidor que hospeda a aplicação Web.
A configuração de cache é frequentemente usada quando um servidor Apache2 está por trás do proxy, já que o Nginx é conhecido por ser muito eficiente no fornecimento de arquivos estáticos.