Como configurar o proxy reverso nginx

Como configurar o proxy reverso nginx

Neste guia, você aprenderá como configurar um proxy reverso nginx com instruções passo a passo. Também explicaremos como funciona um servidor de proxy reverso e quais são suas vantagens. Além disso, também analisamos várias opções de configuração que os administradores do Linux geralmente empregam em seus servidores de proxy reverso.

Neste tutorial, você aprenderá:

  • Como funciona um proxy reverso
  • Quais são os benefícios de um proxy reverso
  • Como configurar o proxy reverso nginx
  • Como passar cabeçalhos
  • Como configurar o balanceamento de carga
  • Como testar a configuração do Nginx
Como configurar o proxy reverso nginx

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Independente da distribuição
Programas Nginx
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Como funciona um proxy reverso?

Um sistema que fica entre um cliente e um servidor da web (ou servidores) pode ser configurado como um proxy reverso. O serviço de proxy atua como um front -end e trabalha lidando com todas as solicitações de clientes recebidas e distribuindo -as para a Web, banco de dados e/ou outros servidores de back -end, e/ou outros servidores.



Benefícios de um proxy reverso

Configurando um proxy reverso do Nginx significa que todas as solicitações recebidas são tratadas em um único ponto, o que fornece várias vantagens:

  • Balanceamento de carga - O proxy reverso distribui conexões de entrada nos servidores de back -end e pode até fazê -lo de acordo com a carga atual em que cada servidor está sob. Isso garante que nenhum dos servidores de back -end seja sobrecarregado com solicitações. Também impede o tempo de inatividade, já que o proxy reverso pode redirecionar o tráfego se um servidor de back -end ficar offline.
  • Registro central - Em vez de ter vários servidores gerar arquivos de log, o proxy reverso pode registrar todas as informações relevantes em um único local. Isso facilita imensamente o trabalho do administrador, pois os problemas podem ser isolados muito mais rapidamente e não há necessidade de analisar arquivos de log de vários locais ao solucionar problemas.
  • Segurança melhorada - Um proxy reverso ofuscará as informações sobre os servidores de back -end, além de atuar como uma primeira linha de defesa contra ataques de entrada. Como o proxy reverso está filtrando o tráfego antes de encaminhá -lo para o back -end, apenas o tráfego inócuo é repassado aos outros servidores.
  • Melhor performance - Um servidor proxy reverso pode tomar decisões inteligentes sobre como distribuir a carga nos servidores de back -end, o que resulta em tempos de resposta mais rápidos. Outras tarefas comuns de servidor, como armazenamento em cache e compressão, também podem ser descarregadas para o servidor proxy reverso, liberando recursos para os servidores de back -end.
VOCÊ SABIA?
Um servidor de proxy reverso não é um componente necessário em todos os cenários de hospedagem da web. As vantagens de um proxy reverso tornam -se mais aparentes em condições de tráfego ou situações de alto tráfego em que vários servidores de back -end são implantados e precisam de algum tipo de balanceamento de carga.

Por que nginx?

Agora que descrevemos as vantagens de um proxy reverso, você pode estar se perguntando por que deve configurar um com nginx, especificamente. A escalabilidade do Nginx e sua capacidade comprovada de lidar com um volume extremamente alto de conexões significa que é perfeito para implantação como proxy reverso e balanceador de carga.

Um aplicativo comum é colocar o nginx entre os clientes e um servidor da web, onde pode operar como um endpoint para criptografia SSL e acelerador da web. Operações que normalmente aumentariam a carga em um servidor da web, como criptografia, compactação e cache, podem ser feitas com mais eficiência através de um proxy reverso nginx.

Como configurar o proxy reverso nginx, passo a passo, instruções

Como explicamos como um proxy reverso funciona e quais são as vantagens para usar uma, nesta seção, examinaremos as etapas necessárias para configurar um proxy reverso nginx.

  1. Instale o nginxyou pode instalar o nginx com o gerenciador de pacotes do seu sistema. Nas distribuições de Ubuntu e Debian, o comando é:
    $ sudo apt-get install nginx 

    Nas distribuições do CentOS e Red Hat:

    # yum install nginx 
  2. Desative o host virtual padrão
    # desvincular/etc/nginx/sites-habilitado/padrão 


  3. Crie uma configuração de proxy reversa Fileall das configurações para o proxy reverso entrará dentro de um arquivo de configuração, e esse arquivo precisa ser colocado dentro do diretório disponível. Comece navegando para o seguinte diretório:
    # cd/etc/nginx/sites-disponível 

    Em seguida, use VI ou seu editor de texto preferido para criar o arquivo de configuração:

    # VI Proxy reverso.conf 

    Cole o seguinte modelo de configuração neste arquivo recém -criado:

    servidor ouça 80; Localização/Alguns/Path/proxy_pass http: // Exemplo.com;  
    cópia de

    Substituir exemplo.com com o endereço IP ou o nome do host do servidor para o qual você está encaminhando. Você também pode especificar uma porta com o nome do host, como 127.0.0.1: 8080 por exemplo. Salve suas alterações e depois saia do editor de texto.

    Observe que isso funcionará para servidores HTTP, mas o NGINX também suporta outros protocolos. Vamos cobrir essas opções na próxima seção.

  4. Habilite o proxy com suas configurações salvas, ative a nova configuração criando um link simbólico para o diretório habilitado para sites:
    # ln -s/etc/nginx/sites-averable/reverse-proxy.Conf/etc/nginx/sites-habilitado/proxy reversa.conf 

Servidores não-HTTP

O exemplo acima mostra como passar solicitações para um servidor HTTP, mas também é possível para o Nginx atuar como um proxy reverso para Fastcgi, uwsgi, SCGI, e Memcached. Em vez de usar o proxy_pass Diretiva mostrada acima, substitua -a pelo tipo apropriado:

  • proxy_pass (servidor http - como visto acima)
  • fastcgi_pass (servidor fastcgi)
  • uwsgi_pass (servidor uwsgi)
  • scgi_pass (servidor SCGI)
  • memcached_pass (servidor memcached)
Exemplo padrão para a diretiva fastcgi_pass

Como passar cabeçalhos

Para configurar quais cabeçalhos o servidor proxy reverso passa para os outros servidores, podemos defini -los no arquivo de configuração que fizemos anteriormente. Use o proxy_set_header Diretiva para ajustar os cabeçalhos.
Eles podem ser configurados no servidor, localização ou bloco HTTP. Por exemplo:

localização/algum/caminho/proxy_set_header host $ host; proxy_set_header x forwarded-proto $ esquema; proxy_set_header x-real-ip $ remote_addr; proxy_pass http: // exemplo.com; 
cópia de

O exemplo acima define três tipos de cabeçalhos e os define para as respectivas variáveis. Existem opções muito diferentes para passar cabeçalhos, mas este exemplo mostra três que são muito comuns.

O Hospedar O cabeçalho contém informações sobre qual host está sendo solicitado. O X-forwarded-proto espécies de cabeçalho se a solicitação for http ou https. E a X-real-ip O cabeçalho contém o endereço IP do cliente solicitante.

Como configurar o balanceamento de carga

O balanceamento de carga é uma das principais justificativas para configurar um servidor de proxy reverso. Podemos começar adicionando algumas linhas extras ao arquivo de configuração que criamos anteriormente. Dê uma olhada em um exemplo:

upstream backend_servers servidor host1.exemplo.com; servidor host2.exemplo.com; servidor host3.exemplo.com;  servidor Ouça 80; Exemplo server_name.com; localização/proxy_pass http: // backend_servers; 
cópia de

Neste exemplo, adicionamos um contexto chamado backend_servers. Dentro, o nome do host/IP de cada servidor é especificado em uma linha separada.

No proxy_pass Diretiva, onde normalmente inseríamos um nome de host ou endereço IP, em vez disso, especificamos o nome do contexto a montante definido acima: backend_servers.

Esta configuração encaminhará solicitações de entrada para exemplo.com para os três hosts diferentes especificados em nosso upstream. Por padrão, o Nginx encaminhará essas solicitações Round Robin, o que significa que cada host dá uma curva em campo uma solicitação.



Configurar algoritmos de balanceamento de carga

Como mencionado, Round Robin é o algoritmo padrão que o Nginx usará para girar as solicitações no upstream. Existem alguns outros algoritmos disponíveis, que se encaixam melhor em determinadas situações:

  • MEINE_CONN - Distribui as conexões recebidas com os servidores de back -end com base em seu número atual de conexões ativas. Um servidor receberá apenas uma solicitação se tiver a menor quantidade de conexões naquele momento. Isso é particularmente útil em aplicativos que exigem conexões duradouras para o cliente.
  • ip_hash - Distribui as conexões recebidas com base no endereço IP do cliente. Isso é útil se você precisar criar consistência da sessão.
  • cerquilha - Distribui as conexões recebidas com base em uma chave de hash. Isso é útil com os hosts de memcached, particularmente.

Especifique um método de balanceamento de carga na parte superior do contexto a montante, assim:

upstream backend_servers MEINE_CONN; servidor host1.exemplo.com; servidor host2.exemplo.com; servidor host3.exemplo.com; 
cópia de

Como testar a configuração do Nginx

Você deve sempre testar sua configuração por erros imediatamente após editar o .conf arquivo e reinicie o nginx.

# serviço nginx configtest # serviço nginx reiniciar 

Conclusão

Neste artigo, vimos como configurar um servidor de proxy reverso com nginx. Também aprendemos sobre como funciona um servidor de proxy reverso e quais são as vantagens para usar um. Abordamos o balanceamento de carga e as várias opções que um administrador precisa para configurá -lo em seu próprio proxy reverso.

Depois de seguir as etapas deste guia, espero que você veja um aumento significativo de desempenho em seu ambiente na web e ache mais fácil gerenciar agora que as conexões recebidas estão sendo enviadas para um único ponto.

Tutoriais do Linux relacionados:

  • Instalação de cabeçalhos do kernel Linux Manjaro
  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Com que frequência você tem que reiniciar seu servidor Linux?
  • OpenLitesPeed como proxy reverso
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Sistema Linux Hung? Como escapar para a linha de comando e…
  • Ubuntu 20.04 Guia