Programa do Curso
Protocolo HTTP/1.x Formato de solicitação e resposta Inspecionando conversas HTTP com tcpdump e Wireshark Inspecionando cabeçalhos HTTP em um navegador da web Fazendo solicitações com CURL Cabeçalhos comuns Pipelining de solicitação Comprimento do conteúdo e codificação em partes Tipos MIME
Nginx instalação Instalando o nginx a partir de pacotes Debian
Variantes do nginx disponíveis no Debian e UbuntuInstalando o nginx da fonteIniciando o nginxAtualizando nginxNginx como servidor de arquivos estático Estrutura geral do arquivo de configuraçãoConfigurando hosts virtuais
Configurando locaisOrdem de pesquisa de localizaçãoConfigurando páginas de erroEmitindo redirecionamentosOutras formas de reescrita de URLExibindo uma imagem GIF vaziaLocais internos e nomeadosSubstituindo tipos MIMEOtimização de desempenho do lado do cliente Permitir que os clientes armazenem recursos em cacheThe Vary: cabeçalhoMinimizando o número de solicitações
Keep-alivesE se um recurso precisar mudarComo os frameworks web lidam com arquivos estáticosCompressão Gzip de pós-processamento de conteúdoDimensionamento de imagemAccess controle Restringindo o acesso a arquivos com base no endereço IPRestrições geográficas
Ocultando diretórios VCS e arquivos privadosAutenticação básicaOutros tipos de autenticação
Combinando restriçõesLinks segurosAplicando limites Modelagem de tráfegoAgrupando solicitações com a finalidade de limitarSolicitações de limitação de taxaRestringindo conexões simultâneasNginx como proxy reverso Protocolos upstream suportadosLidando com certificados SSL upstream autoassinados
Passando parâmetros para backends FastCGI e uWSGIProxy de conexões websocketCabeçalhos X-Accel-*Modificando cabeçalhos recebidos e enviados pelo upstreamConfigurações de proxy reverso específicas do idioma PHP
PythonRubyNginx como um terminador SSL Gerando certificados SSL autoassinadosObtenção de certificados do Let's EncryptRestringindo cifras disponíveisTrabalhando com tickets de sessãoGrampeando respostas OCSP
Verificando a configuração SSLAceitando certificados do lado do clienteConsiderações sobre HTTP/2Balanceamento de carga com Nginx Definição de grupos upstream
Sessões fixas usando ip_hashRecursos extras do Nginx Plus como balanceador de cargaAlternativas para Nginx e Nginx PlusColocando outro Nginx atrás de um balanceador de carga NginxNginx por trás do balanceador de carga HAProxy ou AWSNginx como um cache Dizendo ao nginx para armazenar páginas em cacheComo o nginx reage aos cabeçalhos padrão relacionados ao cacheParâmetros ajustáveis de cachesNginx cache versus cache no nível do aplicativo
Limpando o cacheImplantando aplicativos da web populares com Nginx A lista de aplicativos a serem discutidos é determinada pelo treinadorRegistrando Access arquivos de log e log de errosEspecificando formato de log personalizadoRastreando solicitações lentasOtimizando o registro em logRotação de log
Análise de log por programas externosMonitorando Nginx Nginx página de status do stubNginx Mais página estendida de status ao vivoSobre o que os sistemas de monitoramento geralmente traçam e alertam Nginx[opcional] Alta disponibilidade com Nginx¹ Como implantar o mesmo conteúdo estático em vários servidoresCompartilhamento de configuração
Fail-over usando um endereço IP elástico/virtualConfigurando VRRP com Keepalived
Outras pilhas de alta disponibilidadeNginx Mais integração com KeepalivedErros comuns e problemas de segurança relacionados à configuração NginxProblemas comuns de desempenho¹ A seção Alta Disponibilidade envolve uma configuração de rede que torna os sistemas de detecção de invasões insatisfatórios ou requer a configuração de várias máquinas virtuais por participante (o que nenhum outro tópico precisa). Portanto, não é fornecido por padrão.
Requisitos
Os participantes devem sentir-se à vontade com uma linha de comando Linux e ter conhecimentos práticos de TCP/IP