Proxy reverso Nginx: configuração de cache

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.

Romain Drouche

Romain Drouche

Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

GHinM▶