Introdução ao Nginx (O que é Nginx? O que ele pode fazer?)

Geração do Nginx

  Nunca ouviu falar do Nginx? Então você deve ter ouvido falar de seu "par" Apache! Como o Apache, o Nginx é um servidor WEB. Baseado no estilo de arquitetura REST, ele usa Uniform Resources Identifier (Uniform Resources Identifier) ​​​​URI ou Uniform Resources Locator (Uniform Resources Locator) URL como base de comunicação e fornece vários serviços de rede por meio de o protocolo HTTP. .

  No entanto, esses servidores eram limitados pelo ambiente no início do projeto, como a escala do usuário, a largura de banda da rede e os recursos do produto naquele momento, e seu posicionamento e desenvolvimento eram diferentes. Isso também faz com que cada servidor WEB tenha suas próprias características distintas.

  O período de desenvolvimento do Apache é muito longo e é indiscutivelmente o servidor número um do mundo. Tem muitas vantagens: estabilidade, código aberto, plataforma cruzada e assim por diante. Já existe há muito tempo e, na época em que surgiu, a indústria da Internet era muito inferior ao que é agora. Por isso, foi projetado para ser um peso pesado. É um servidor que não suporta alta simultaneidade. A execução de dezenas de milhares de acessos simultâneos no Apache fará com que o servidor consuma muita memória. A alternância entre processos ou threads pelo sistema operacional também consome uma grande quantidade de recursos da CPU, resultando na diminuição da velocidade média de resposta das requisições HTTP.

  Tudo isso determina que o Apache não pode se tornar um servidor WEB de alto desempenho, e o servidor leve e de alta simultaneidade Nginx surgiu.

  O engenheiro russo Igor Sysoev, que desenvolveu o Nginx em C enquanto trabalhava para a Rambler Media. Como um servidor WEB, o Nginx tem fornecido serviços excelentes e estáveis ​​para a Rambler Media.

Então, Igor Sysoev abriu o código Nginx e deu a ele uma licença de software livre.

  porque:

  • O Nginx usa uma arquitetura orientada a eventos que permite suportar milhões de conexões TCP
  • Um alto grau de modularidade e licenças de software livre fazem com que módulos de terceiros surjam infinitamente (esta é uma era de código aberto~)
  • Nginx é um servidor de plataforma cruzada que pode ser executado em Linux, Windows, FreeBSD, Solaris, AIX, Mac OS e outros sistemas operacionais
  • Esses excelentes designs trazem grande estabilidade

  Então, o Nginx está pegando fogo!

Onde o Nginx entra

  O Nginx é um servidor HTTP gratuito, de código aberto e de alto desempenho e um servidor proxy reverso; também é um servidor proxy IMAP, POP3 e SMTP; o Nginx pode ser usado como um servidor HTTP para processamento de lançamento de sites e o Nginx pode ser usado como um servidor proxy reverso O proxy implementa o balanceamento de carga.

Sobre o agente

  Quando se trata de agência, devemos primeiro esclarecer um conceito, a chamada agência é um representante e um canal;

  Neste momento, duas funções estão envolvidas, uma é a função de proxy e a outra é a função de destino. O processo da função de proxy acessando a função de destino por meio desse proxy para concluir algumas tarefas é chamado de processo de operação de proxy; é como uma loja especializada na vida - os clientes vão para a adidas Quando uma loja especializada compra um par de sapatos, a loja especializada é o agente, a função do agente é o fabricante da adidas e a função alvo é o usuário.

proxy de encaminhamento

  Antes de falar sobre o proxy reverso, vamos dar uma olhada no proxy de encaminhamento. O proxy de encaminhamento também é o modo de proxy com o qual todos mais entram em contato. Falaremos sobre o modo de processamento do proxy de encaminhamento sob dois aspectos, desde o Aspecto de software e a vida Deixe-me explicar o que é um proxy de encaminhamento.

  No ambiente de rede atual, se quisermos visitar alguns sites estrangeiros devido a necessidades técnicas, você descobrirá que não podemos acessar um site estrangeiro por meio de um navegador. No momento, todos podem usar uma operação FQ Para acessar, o caminho do FQ é principalmente para encontrar um servidor proxy que possa acessar sites estrangeiros, enviaremos a solicitação para o servidor proxy, o servidor proxy visitará sites estrangeiros e passará os dados acessados ​​para nós!

  O modo de proxy acima é chamado de proxy de encaminhamento. A maior característica do proxy de encaminhamento é que o cliente é muito claro sobre o endereço do servidor a ser acessado ; o servidor só sabe de qual servidor proxy a solicitação vem, mas não de qual cliente específico ela vem de; encaminhar padrões de proxy mascarar ou ocultar informações reais do cliente . Vejamos um diagrama esquemático (enquadro o cliente e o proxy de encaminhamento juntos, que pertencem ao mesmo ambiente, e o apresentarei mais adiante):

  O cliente deve configurar um servidor proxy de encaminhamento , claro, a premissa é saber o endereço IP do servidor proxy de encaminhamento e a porta do programa proxy. Como mostrado na imagem.

  Resumindo: Forward proxy, "atua como o cliente e envia requisições em nome do cliente", é um servidor localizado entre o cliente e o servidor original (servidor de origem), para obter conteúdo do servidor original, o cliente envia para O proxy envia uma solicitação e especifica o destino (servidor de origem), então o proxy encaminha a solicitação para o servidor de origem e retorna o conteúdo obtido para o cliente. O cliente deve fazer algumas configurações especiais para usar o proxy de encaminhamento.

  A finalidade do proxy de encaminhamento:
(1) Acessar recursos que antes não podiam ser acessados, como o Google
(2) Pode ser usado como cache para agilizar o acesso a recursos
(3) Autorizar o acesso do cliente e autenticar a Internet
(4) O proxy pode gravar registros de acesso do usuário (gerenciamento de comportamento na Internet), ocultar informações do usuário do mundo externo

proxy reverso

  Depois de entender o que é um proxy direto, vamos continuar a ver como lidar com o proxy reverso. Por exemplo, um determinado site de tesouro da Minha Grande Dinastia Celestial, o número de visitantes que se conectam ao site na mesma hora todos os dias explodiu , e um único servidor está longe de atender às crescentes necessidades das pessoas. A vontade de comprar, nessa época, surgiu um termo familiar: implantação distribuída; ou seja, resolver o problema de limitar o número de visitantes por implantando vários servidores; a maioria das funções de um site de tesouro também são implementadas diretamente pelo proxy reverso usando Nginx Sim, e depois de encapsular o Nginx e outros componentes, ele tem um nome alto: Tengine. Os sapatos infantis interessados ​​podem visitar o site oficial da Tengine para ver detalhes específicos informações: http://tengine.taobao.org/. Então, que tipo de método o proxy reverso realiza a operação de cluster distribuído? Vamos ver um diagrama esquemático primeiro (enquadro o servidor e o proxy reverso juntos e eles pertencem ao mesmo ambiente. Vou apresentá-lo mais tarde):

  Através da ilustração acima, você pode ver claramente que depois de receber as solicitações enviadas por vários clientes ao servidor, o servidor Nginx as distribui para o servidor de processamento de negócios de back-end de acordo com certas regras de processamento. Neste momento ~ a origem da solicitação é o cliente está claro, mas não está claro em qual servidor a solicitação é processada. O Nginx desempenha o papel de um proxy reverso.

  O cliente não sabe da existência do proxy, e o proxy reverso é transparente para o mundo externo, e o visitante não sabe que está visitando um proxy. Pois o cliente pode acessar sem nenhuma configuração.

  O proxy reverso, "atua como um proxy para o servidor e recebe solicitações em nome do servidor" , é usado principalmente no caso de implantação distribuída de clusters de servidores, e o proxy reverso oculta as informações do servidor.

  O papel do proxy reverso:
(1) Para garantir a segurança da intranet, geralmente o proxy reverso é usado como endereço de acesso à rede pública e o servidor da web é a intranet (2)
Balanceamento de carga, otimize a carga do site por meio de o servidor proxy reverso

cena do projeto

  Normalmente, quando operamos o projeto real, é provável que o proxy de encaminhamento e o proxy reverso existam em um cenário de aplicativo. O proxy de encaminhamento atua como um proxy para a solicitação do cliente para acessar o servidor de destino. O servidor de destino é um servidor de interesse simples reverso ., proxy reverso vários servidores de processamento de negócios reais. O diagrama de topologia específico é o seguinte:

diferença entre os dois

  Uma foto foi tirada para ilustrar a diferença entre proxy de encaminhamento e proxy reverso, conforme mostrado na figura.

 

No proxy de encaminhamento, o Proxy e o Cliente pertencem à mesma LAN (na caixa da figura), que oculta as informações do cliente;

No proxy reverso, Proxy e Servidor pertencem à mesma LAN (na caixa da figura), o que oculta as informações do servidor;

Na verdade, o que o Proxy faz nos dois tipos de proxies é substituir o servidor para enviar e receber solicitações e respostas, mas do ponto de vista estrutural, ele é intercambiado, então o método de proxy que apareceu depois é chamado de proxy reverso .

balanceamento de carga

  Esclarecemos o conceito do chamado servidor proxy, então, a seguir, o Nginx desempenha o papel de um servidor proxy reverso. Quais regras ele usa para distribuir solicitações? Para diferentes cenários de aplicação do projeto, as regras de distribuição podem ser controladas?

  O número de solicitações enviadas pelo cliente e recebidas pelo servidor proxy reverso Nginx mencionado aqui é o que chamamos de carga.

  A regra de que o número de solicitações é distribuído para diferentes servidores para processamento de acordo com determinadas regras é uma espécie de regra de balanceamento.

  Portanto, o processo de distribuir as requisições recebidas pelo servidor de acordo com as regras é chamado de balanceamento de carga.

  No processo real de operação do projeto de balanceamento de carga, existem dois tipos de balanceamento de carga de hardware e balanceamento de carga de software. O balanceamento de carga de hardware também é chamado de carga pesada, como o balanceamento de carga F5, que é relativamente caro e caro, mas a estabilidade e a segurança de dados, etc. Há garantias muito boas. Empresas como China Mobile e China Unicom escolherão cargas pesadas para operar; mais empresas escolherão usar balanceamento de carga de software por razões de custo. O balanceamento de carga de software usa tecnologias existentes combinadas com hardware host A Mecanismo de distribuição de fila de mensagens implementado.

  O algoritmo de agendamento de balanceamento de carga suportado pelo Nginx é o seguinte:

  1. Pesquisa de peso (padrão, comumente usado, com efeito HA!): As solicitações recebidas são atribuídas a diferentes servidores de back-end de acordo com seus pesos. Mesmo se um servidor de back-end cair durante o uso, o Nginx removerá automaticamente o servidor Dequeue, a aceitação da solicitação não ser afetado de alguma forma. Dessa forma, você pode definir um valor de peso (weight) para diferentes servidores back-end para ajustar a taxa de alocação de solicitações em diferentes servidores; quanto maior o peso dos dados, maior a probabilidade de ser alocado para a solicitação; o valor do peso , É ajustado principalmente para diferentes configurações de hardware de servidor de back-end no ambiente de trabalho real.
  2. ip_hash (comumente usado): Cada solicitação é alocada de acordo com o resultado do hash do ip de acesso, para que cada visitante acesse um servidor back-end fixamente, o que também resolve o problema de compartilhamento de sessão em um ambiente de implantação de cluster até certo ponto.
  3. justo: ajuste inteligentemente o algoritmo de agendamento e equilibre dinamicamente a alocação de acordo com o tempo desde o processamento da solicitação até a resposta do servidor back-end. Servidores com tempo de resposta curto e alta eficiência de processamento têm alta probabilidade de serem alocados para solicitações e servidores com tempo de resposta longo e baixa eficiência de processamento são alocados Menos requisições, um algoritmo de escalonamento que combina as vantagens dos dois primeiros. No entanto, deve-se notar que o Nginx não suporta o algoritmo justo por padrão. Se você quiser usar este algoritmo de agendamento, instale o módulo upstream_fair.
  4. url_hash: Aloca as requisições de acordo com o resultado do hash da url acessada. A url de cada requisição irá apontar para um servidor fixo no backend, o que pode melhorar a eficiência do cache quando o Nginx é usado como um servidor estático. Observe também que o Nginx não oferece suporte a esse algoritmo de agendamento por padrão. Se você quiser usá-lo, precisará instalar o pacote de hash do Nginx.

 Comparação de vários servidores web comumente usados

Comparar item\servidor Apache NginxGenericName Luztpd
Proxy proxy muito bom muito bom geralmente
Reescritor bom muito bom geralmente
Fcgi não é bom bom muito bom
implantação quente não suporta apoiar não suporta
Pressão do sistema muito grande muito pequeno menor
estabilidade bom muito bom não é bom
segurança bom geralmente geralmente
Manipulação de arquivos estáticos geralmente muito bom bom
proxy reverso geralmente muito bom geralmente

Acho que você gosta

Origin blog.csdn.net/weixin_45925028/article/details/132316235
Recomendado
Clasificación