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 Aplica diretivas de configuração global adicionais,
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 os arquivos mencionados nela. 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 um processo mestre recém-iniciado possa restaurá-las
com desempenho melhorado.
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
, INT
QUIT
HUP
USR1
USR2
WINCH
$ sudo kill -QUIT $(cat /run/angie.pid)
TERM
, INT
QUIT
USR1
WINCH
Alterando 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.2 #1 [angie]
angie: worker process #1
$ sudo kill -HUP $(cat /run/angie.pid)
$ ps aux | grep angie
angie: master process v1.10.2 #2 [angie]
angie: worker process #2
$ ps aux | grep angie
angie: worker process #1
angie: worker process #2
Rotacionando 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 um processo mestre recém-iniciado possa restaurá-las
com desempenho melhorado.
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