Introdução ao Varnish Cache
Acelere seus aplicativos web
Descrição do livro
Quanto tempo seu site leva para ser carregado? O desempenho na web é tão crítico para sites de tamanho pequeno e médio quanto o é para sites grandes que recebem muitos acessos. Antes de investir tempo e dinheiro na recriação de seu código ou na substituição de sua infraestrutura, considere usar um servidor proxy de cache reverso como o Varnish. Com este livro prático, você aprenderá como o Varnish pode fornecer ao seu site ou API uma melhoria imediata no desempenho.
O Varnish imita o comportamento do servidor web, armazena sua saída em cache na memória e serve o resultado diretamente para os clientes sem ser preciso acessar o servidor. Se você é um desenvolvedor web familiarizado com o HTTP, este livro o ajudará a dominar os aspectos básicos do Varnish para começar a usá-lo imediatamente. Você aprenderá como usar o Varnish Configuration Language e as melhores práticas do HTTP para obter um desempenho mais veloz e uma taxa de acertos mais alta.
Descubra como o Varnish o ajudará a obter um desempenho ótimo na web
Use o HTTP para melhorar o recurso de cache de seus sites, aplicativos web e APIs
Invalide de modo adequado seu cache quando os dados originais mudarem
Otimize o acesso a seus servidores backend
Evite erros comuns ao usar o Varnish
Use ferramentas de logging e depuração para examinar o comportamento do Varnish
Crie um aplicativo cliente que possa consumir vários serviços
Sumário
Sumário
- Prefácio
- Capítulo 1 ■ O que é Varnish Cache?
- Por que o desempenho na web é importante?
- Qual o papel do Varnish?
- Projeto open source Varnish Cache
- Como o Varnish funciona?
- Armazenar em cache não é um truque
- Conclusão
- Capítulo 2 ■ Não demore; comece logo!
- Instalando o Varnish
- Instalando o Varnish usando um gerenciador de pacotes
- Instalando o Varnish no Ubuntu e Debian
- Instalando o Varnish no Red Hat e CentOS
- Configurando o Varnish
- Arquivo de configuração
- Algumas observações sobre o Systemd no Ubuntu e Debian
- Opções de inicialização
- E quanto ao TLS/SSL?
- Conclusão
- Capítulo 3 ■ O Varnish fala HTTP
- Idempotência
- Estado
- Expiração
- Cabeçalho Expires
- Cabeçalho Cache-control
- Precedência de expiração
- Solicitações condicionais
- ETag
- Last-Modified
- Como o Varnish lida com solicitações condicionais
- Variações de cache
- Comportamento do VCL interno do Varnish
- Quando uma solicitação é considerada armazenável em cache?
- Quando o Varnish contorna o cache?
- Como o Varnish identifica um objeto?
- Quando o Varnish armazena um objeto em cache?
- O que ocorre quando um objeto não é armazenado em cache?
- Por quanto tempo o Varnish armazena um objeto em cache?
- Conclusão
- Capítulo 4 ■ Varnish Configuration Language
- Hooks e sub-rotinas
- Sub-rotinas do lado do cliente
- Sub-rotinas de backend
- Sub-rotinas de inicialização e limpeza
- Sub-rotinas personalizadas
- Instruções de retorno
- Fluxo de execução
- Sintaxe do VCL
- Operadores
- Instruções condicionais
- Comentários
- Valores escalares
- Expressões regulares
- Funções
- Inclusões
- Importando módulos Varnish
- Backends e sondagens de integridade
- Listas de controle de acesso
- Variáveis VCL
- VCL interno do Varnish
- Arquivo VCL do mundo real
- Conclusão
- Capítulo 5 ■ Invalidando o cache
- Armazenando por um tempo muito longo
- Expurgo
- Banimento
- Banimentos amigáveis com o espreitador
- Mais flexibilidade
- Visualizando a lista de banimento
- Banimento na linha de comando
- Forçando um cache miss
- É difícil invalidar o cache
- Conclusão
- Capítulo 6 ■ Lidando com backends
- Seleção do backend
- Integridade do backend
- Diretores
- Diretor round-robin
- Diretor aleatório (random)
- Diretor hash
- Diretor fallback
- Modo grace
- Ativando o modo grace
- Conclusão
- Capítulo 7 ■ Melhorando sua taxa de acertos
- Erros comuns
- Não saber o que é hit-for-pass
- Retornando cedo demais
- Expurgando sem a lógica de expurgo
- ACL de proteção contra acesso ao expurgo
- Armazenamento de respostas 404 em cache
- Definindo um cabeçalho Age
- Max-age versus s-maxage
- Adicionando autenticação básica para ambientes de aceitação
- Cookies de sessão em todos os lugares
- Inexistência de variações de cache
- Deseja realmente armazenar recursos estáticos em cache?
- Listas negras e listas brancas de URLs
- Decida o que será armazenado em cache com cabeçalhos Cache-control
- Sempre haverá cookies
- Painel de administração
- Remova os cookies de rastreamento
- Remova todos, exceto alguns
- Variações de cookie
- Sanitizando
- Removendo a porta
- Classificação de strings de consulta
- Removendo parâmetros de URL do Google Analytics
- Removendo a cerquilha do URL
- Removendo o ponto de interrogação final
- Marcador de acerto/erro
- Armazenando blocos em cache
- AJAX
- Edge Side Includes
- Fazendo o Varnish analisar o ESI
- ESI versus AJAX
- Tornando seu código pronto para o cache de blocos
- Exemplo de código contendo todas as práticas
- Conclusão
- Capítulo 8 ■ Registrando, avaliando e depurando
- Varnishstat
- Exemplo de saída
- Exibindo métricas específicas
- Formatação da saída
- Varnishlog
- Exemplo de saída
- Filtrando a saída
- Varnishtop
- Conclusão
- Capítulo 9 ■ O que essa decisão significa para os negócios?
- Usar ou não usar uma CDN
- O VCL é mais barato
- Varnish como bloco de construção
- O caso do cliente original
- Varnish Plus
- Empresas que usam o Varnish atualmente
- NU nl: investir cedo compensa
- SFR: construa sua própria CDN
- Varnish na Wikipedia
- Combell: Varnish em hospedagem compartilhada
- Conclusão
- Capítulo 10 ■ Passando para o próximo nível
- E quanto aos serviços RESTful?
- Suporte a Patch
- Autenticação
- Invalidação
- Estendendo o comportamento do Varnish com VMODs
- Encontrando e instalando VMODs
- Ativando VMODs
- VMODs que vêm com o Varnish
- Precisa de ajuda?
- O futuro do projeto Varnish
