arquitetura Nginx e princípios básicos

cenários de aplicação nginx

Nginx os três cenários principais:

  • Serviço de Recursos estática
  • Serviço Reverse Proxy
  • Serviço API

Serviço de Recursos estática

Nginx pode servir recursos estáticos pelo sistema de arquivos local, tais como páginas HTML estático puros e assim por diante.

Serviço Reverse Proxy

Muitas aplicações de serviços de eficiência operacional é muito baixo, QPS, TPS, concorrência é limitada, é necessário colocar um monte de aplicações e serviços tornam-se um cluster para fornecer alta disponibilidade de serviços para os usuários, desta vez necessidade de Nginx reverter a funcionalidade de proxy , e a expansão dinâmica de serviços de aplicações requerem o equilíbrio de carga, um outro, Nginx necessidades camada tampão a ser feito. Portanto serviços proxy reversos são essencialmente três funções:

  • proxy reverso
  • load Balancing
  • esconderijo

Serviço API

Às vezes, o próprio serviço de aplicação tem um monte de problemas de desempenho, mas muito melhor do que os serviços de aplicativos de banco de dados serviço, cenário de negócios é relativamente simples, concorrência e TPS para ser muito maior do que apps, por isso desta vez pode acessar o banco de dados diretamente de ou para o Redis Nginx ele também pode ser alcançado aplicativo de serviço API firewall com a poderosa concorrência de Nginx.

Fundação Nginx Arquitetura

máquina de estado Nginx

Quando os serviços externos Nginx, há três tráfego atingirá Nginx: web, email, o tráfego TCP. Após três fluxo atinge o Nginx, respectivamente, será tratada pela máquina de estado de camada de transporte, a máquina de estado de camada de aplicação, de máquina de estado de correio. Quando a memória não é suficiente para armazenar em cache todos os recursos estáticos, irá degenerar em disco para bloquear chamadas, você precisa de um pool de threads ao punho, neste momento, para cada acesso pedido processado registros e logs de erro, o log é gravado no disco.

estrutura processo Nginx

Nginx Há quatro processos:

  • processo mestre. processo mestre é o processo pai, outros processos são processos criança, mestre de processos de trabalho para gerir o processo
  • processo de trabalho. Existem vários processos de trabalho, é responsável pelo tratamento de pedidos específicos. Nginx Por processo ao invés de estrutura multi-processo multi-threaded? Porque Nginx para garantir alta disponibilidade, irá compartilhar um espaço de endereço entre vários segmentos, quando alguns módulos de terceiros levaram a uma falha de segmentação, ele fará com que todo o processo de jeito Nginx. O modelo multi-processo não tem esse problema
  • Gerenciador de cache e processo de carregador de cache. Além do cache para ser usado por vários processos de trabalho, mas também usando o processo de cache, do cache loader como carga cache, gerente de gerenciamento de cache do cache, o cache é realmente usado para cada solicitação ou para o processo de trabalho. A comunicação entre esses processos são realizados através de memória compartilhada

Por processo de trabalho precisa de um monte?

Isto porque, Nginx usa um modelo orientado a eventos, que espera que o processo de trabalho do início ao fim pode preencher uma CPU, para que possa de forma mais eficiente usar pedaços inteiros de CPU, melhorar a taxa de acerto de cache da CPU, o processo de trabalho também pode em conjunto com a ligação de um núcleo de CPU.

Use de pai e gestão de sinal de criança Nginx

Falando de Nginx na frente da linha de comando, na verdade, muitos sinais Nginx é enviar um sinal para o processo mestre através de alcançar.

processo mestre

processo mestre monitora o processo de trabalho e monitorar a realização da necessidade de enviar um sinal para o processo CHLD pai quando o processo filho especificado pela saída Linux. Este erro ocorre quando, retire imediatamente trabalhador.

processo mestre pode receber os sinais seguintes:

  • TERM, INT
  • SAIR
  • HUP
  • USR1
  • USR2
  • GUINCHO

processo de trabalho

processo de trabalho pode receber os seguintes sinais:

  • TERM, INT
  • SAIR
  • HUP
  • USR1
  • GUINCHO

Um sinal, que corresponde à linha de comando

  • recarga: HUP
  • reabrir: USR1
  • parada: TERM
  • quit: SAIR

GUINCHO USR2 e nenhum sinal correspondente é transmitida através de apenas matar.

A diferença entre parar e parar de fumar é, um é imediatamente saída, é uma parada graciosa.

O arquivo de configuração de recarga verdade recarga

  1. Envie um sinal HUP para o processo mestre
  2. O processo de verificar se o problema do arquivo de configuração principal sintaxe
  3. Abrir uma porta de monitor novo processo mestre (se uma nova configuração da porta)
  4. processo mestre para começar a usar o novo processo de trabalho do arquivo de configuração
  5. processo mestre SAIR envia um sinal para o processo de trabalho de idade
  6. processo de trabalho alça monitor de desligamento de idade, terminou com o processo após o fim da ligação actual

A verdade da implantação quente

No artigo anterior, sobre o fluxo de implantação quente, a implantação de calor de processo específico é uma espécie de como ele?

  1. Irá substituir o arquivo antigo para o novo arquivo Nginx Nginx (note que o backup)
  2. USR2 enviar um sinal para o processo mestre
  3. modificar o nome do arquivo pid processo mestre sufixo .oldbin
  4. processo mestre para iniciar novos processos com um novo arquivo mestre Nginx
  5. Enviar sair sinal para o antigo processo mestre, encerre o velho mestre
  6. Rollback, enviar o sinal HUP para o antigo processo mestre, o novo envio mestre SAIR

A virada elegante off processo de trabalho

  1. Defina o temporizador worker_shutdown_timeout
  2. Fechar ouvintes punho
  3. conexões ociosas Fechar
  4. À espera de todas as ligações fechadas recirculação
  5. Sair do processo

Lá, o papel do timer, se o tempo limite, mas a conexão ainda não foi processado será forçado a retirar-se do processo. Além disso, Nginx só pode lidar com HTTP elegante fechado, websocket, procuração TCP, UDP não pode fazer, trabalhador não analisa os dados.

Estes conteúdos, o processo está completo linha de comando Nginx e sinais. Da próxima vez começou a falar HTTP módulo.

Não receber a atenção do público mapa de conhecimento Nginx

Não receber a atenção do público mapa de conhecimento Nginx

Acho que você gosta

Origin www.cnblogs.com/iziyang/p/12596407.html
Recomendado
Clasificación