Controle em Tempo de Execução#
Para iniciar o Angie, use o systemd com o seguinte comando:
$ sudo service angie start
É recomendado verificar a sintaxe da configuração antecipadamente. Veja como:
$ sudo angie -t && sudo service angie start
Para recarregar a configuração:
$ sudo angie -t && sudo service angie reload
Para parar o Angie:
$ sudo service angie stop
Após a instalação, execute o seguinte comando para garantir que o Angie esteja funcionando:
$ curl localhost:80
Nota
Os métodos para executar a versão de código aberto do Angie podem variar dependendo do método de instalação.
O Angie possui um processo mestre e vários processos trabalhadores. O processo mestre é responsável por ler e avaliar a configuração e manter os processos trabalhadores. Os processos trabalhadores lidam com o processamento real das requisições. O Angie usa um modelo baseado em eventos e mecanismos dependentes do SO para distribuir eficientemente as requisições entre os processos trabalhadores. O número de processos trabalhadores é definido no arquivo de configuração e pode ser fixo para uma determinada configuração ou ajustado automaticamente com base no número de núcleos de CPU disponíveis (veja worker_processes).
Quando configurado, o Angie também descarregará certas zonas de memória
compartilhada (atualmente, a O Angie também pode ser controlado usando sinais. Por padrão, o ID do processo
do processo mestre é escrito no arquivo Desligamento rápido Desligamento gracioso Recarregar configuração, atualizar fuso horário (apenas para FreeBSD e Linux),
iniciar novos processos trabalhadores com a configuração atualizada,
desligar graciosamente os processos
trabalhadores antigos Reabrir arquivos de log Atualizar o arquivo executável Desligamento gracioso dos processos trabalhadores Você pode enviar sinais usando kill: Processos trabalhadores individuais também podem ser controlados usando sinais,
embora isso seja opcional. Os sinais suportados são: Desligamento rápido Desligamento gracioso Reabrir arquivos de log Terminação anormal para depuração (requer que debug_points esteja
habilitado) Para que o Angie releia o arquivo de configuração, um sinal O Angie rastreia mudanças de configuração para cada processo. Os números de
geração começam em 1 quando o servidor é iniciado pela primeira vez. Esses
números são incrementados a cada recarga de configuração e são visíveis nos
títulos dos processos: Após uma recarga de configuração bem-sucedida (independentemente de haver
mudanças reais), o Angie incrementa o número de geração para processos que
receberam a nova configuração: Se quaisquer processos trabalhadores de gerações anteriores continuarem a
operar, eles se tornarão imediatamente visíveis: Nota Não confunda o número de geração da configuração com um 'número de processo';
o Angie não usa numeração contínua de processos para fins práticos. Para rotacionar arquivos de log, primeiro renomeie os arquivos. Em seguida,
envie um sinal Para atualizar o executável do servidor, primeiro substitua o arquivo
executável antigo pelo novo. Em seguida, envie um sinal Note que o processo mestre antigo não fecha seus sockets de escuta e pode ser
gerenciado para reiniciar seus processos trabalhadores se necessário. Se o novo
executável não funcionar como esperado, você pode tomar uma das seguintes ações: Envie o sinal Envie o sinal Se o novo processo mestre sair, o processo mestre antigo removerá o sufixo
Se a atualização for bem-sucedida, envie o sinal Quando configurado, o Angie também descarregará certas zonas de memória
compartilhada (atualmente, a Exibe ajuda para parâmetros de linha de comando e sai. Exibe informações auxiliares sobre o ambiente de compilação e sai. Usa arquivo como o arquivo de configuração em vez do arquivo padrão. Usa arquivo como o arquivo de log de erro em vez do arquivo padrão. O valor especial Define diretivas de configuração global,
por exemplo: Exibe uma lista de módulos integrados ( Usa o caminho prefixo especificado para Exibe apenas mensagens de erro se Envia um sinal para o processo mestre:
Testa o arquivo de configuração e sai. O Angie verifica a
sintaxe da configuração, incluindo recursivamente arquivos mencionados nele. Igual ao Exibe a versão do Angie e sai. Exibe a versão do Angie, versão do compilador, tempo de compilação
e os parâmetros de compilação usados, e sai.keys_zone em proxy_cache_path)
para o disco antes de sair,
para que o novo processo mestre possa restaurá-las
e assim melhorar o desempenho.
Se a restauração falhar devido a uma mudança no tamanho da zona,
incompatibilidade de versão binária ou outras razões,
o Angie registrará um alerta (failed to restore zone at address)
e não usará o mecanismo de restauração de zona.Usando Sinais#
/run/angie.pid. Este nome de
arquivo pode ser alterado no momento da configuração ou em angie.conf
usando a diretiva pid. O processo mestre suporta os seguintes sinais:TERM, INTQUITHUPUSR1USR2WINCH$ sudo kill -QUIT $(cat /run/angie.pid)
TERM, INTQUITUSR1WINCHAlterando Configuração#
HUP deve
ser enviado ao processo mestre. O processo mestre primeiro verifica a validade
da sintaxe e então tenta aplicar a nova configuração, que inclui abrir novos
arquivos de log e sockets de escuta. Se a aplicação da nova configuração
falhar, o processo mestre reverte as mudanças e continua operando com a
configuração antiga. Se a aplicação for bem-sucedida, o processo mestre inicia
novos processos trabalhadores e envia mensagens aos processos trabalhadores
antigos, solicitando que eles desliguem graciosamente. Os processos trabalhadores antigos fecham seus
sockets de escuta e continuam a atender clientes existentes. Depois que todos
os clientes foram atendidos, os processos trabalhadores antigos são desligados.$ sudo angie
$ ps aux | grep angie
angie: master process v1.10.3 #1 [angie]
angie: worker process #1
$ sudo kill -HUP $(cat /run/angie.pid)
$ ps aux | grep angie
angie: master process v1.10.3 #2 [angie]
angie: worker process #2
$ ps aux | grep angie
angie: worker process #1
angie: worker process #2
Rotação de Arquivos de Log#
USR1 ao processo mestre. O processo mestre reabrirá
todos os arquivos de log atualmente abertos e os atribuirá a um usuário sem
privilégios sob o qual os processos trabalhadores estão executando. Após
reabrir com sucesso os arquivos, o processo mestre fecha todos os arquivos
abertos e notifica os processos trabalhadores para reabrirem seus arquivos de
log. Os processos trabalhadores também abrirão os novos arquivos e fecharão os
antigos imediatamente. Como resultado, os arquivos antigos ficam disponíveis
para pós-processamento, como compressão, quase imediatamente.Atualização de Executável em Tempo Real#
USR2 ao
processo mestre. O processo mestre renomeará seu arquivo atual com o ID do
processo para um novo arquivo com o sufixo .oldbin, por exemplo,
/usr/local/angie/logs/angie.pid.oldbin, e então iniciará o novo
executável, que por sua vez inicia novos processos trabalhadores.HUP ao processo mestre antigo. Isso iniciará novos
processos trabalhadores sem reler a configuração. Você pode então desligar
todos os novos processos graciosamente
enviando o sinal QUIT ao novo processo mestre.TERM ao novo processo mestre. Ele enviará uma mensagem
aos seus processos trabalhadores, solicitando que saiam imediatamente. Se
quaisquer processos não saírem, envie o sinal KILL para forçá-los a
sair. Quando o novo processo mestre sair, o processo mestre antigo iniciará
automaticamente novos processos trabalhadores..oldbin do nome do arquivo com o ID do processo.QUIT ao processo
mestre antigo, e apenas os novos processos permanecerão.keys_zone em proxy_cache_path)
para o disco antes de atualizar,
para que o novo processo mestre possa restaurá-las
e assim melhorar o desempenho.
Se a restauração falhar devido a uma mudança no tamanho da zona,
incompatibilidade de versão binária ou outras razões,
o Angie registrará um alerta (failed to restore zone at address)
e não usará o mecanismo de restauração de zona.Opções de Linha de Comando#
-?, -h--build-env-c arquivo-e arquivostderr especifica a saída de erro
padrão.-g diretivasangie -g "pid /var/run/angie.pid; worker_processes
`sysctl -n hw.ncpu`;".-m, -M-m) ou integrados e
carregados (-M) e sai.-p prefixoangie (o diretório onde os
arquivos do servidor estão localizados; o padrão é /usr/local/angie/).-q-t ou -T estiver
definido; caso contrário, não tem efeito.-s sinalstop, quit, reopen, reload, e assim por diante.-t-T-t, mas também exibe o resumo da configuração na
saída padrão após incluir recursivamente todos os arquivos mencionados na
configuração.-v-V