BLOG | NGINX

Tutorial: Configurando NGINX e NGINX Plus como um servidor Web e proxy reverso na AWS

NGINX-Parte-de-F5-horiz-preto-tipo-RGB
Aidan Carson Miniatura
Aidan Carson
Publicado em 12 de novembro de 2021

Desde sua introdução, há mais de 15 anos, o NGINX vem ganhando popularidade de forma constante e agora é o servidor web mais popular do mundo , alimentando mais de [ngx_snippet name='number-sites'] sites . Neste caso, achamos inteligente seguir a multidão e usar o NGINX para todas as suas necessidades de serviço web e, além disso, aproveitar seus recursos como proxy reverso , cache de conteúdo , balanceador de carga , gateway de API e muito mais.

Esta postagem do blog orienta você a instalar e executar o NGINX no Ubuntu 20.04 na Amazon Web Services (AWS) em uma configuração fácil de usar que não afeta as configurações do seu computador pessoal. Ele abrange o NGINX e o NGINX Plus , a versão com suporte comercial e recursos adicionais de nível empresarial.

Após concluir as etapas fornecidas aqui, você pode querer continuar com o treinamento NGINX Core ( com instrutor ou sob demanda ), um curso de dia inteiro onde você aprenderá a configurar, administrar e gerenciar o NGINX. O curso também prepara você para nossos outros cursos com instrutor e em ritmo próprio sobre tópicos avançados .

O tutorial inclui instruções para estas tarefas:

Acessando um Terminal

Para este tutorial, você precisa de um terminal para se conectar à sua instância do Amazon Elastic Compute Cloud (EC2). Os Macs têm um terminal integrado, mas os usuários do Windows precisam baixar o PuTTY ou uma ferramenta equivalente. Se você preferir usar seu próprio terminal local para configurar o NGINX ou o NGINX Plus e fornecer conteúdo da web, fique à vontade para pular para Configurando a AWS .

Acessando um Terminal no MacOS

Em Macs, você pode usar a ferramenta de terminal integrada para fazer tudo neste tutorial.

  1. Clique no ícone de lupa na extremidade direita da barra superior da tela.

  2. Digite terminal na caixa pop-up e pressione Enter. Uma janela de terminal separada é aberta.

Acessando um Terminal no Windows

O Windows não vem com um terminal integrado, então você precisa baixar um da Internet. Junto com a AWS, recomendamos o PuTTY, um cliente SSH usado em todo o mundo.

  1. Acesse a página de download do PUTTY .

  2. Baixe e instale o arquivo em um local de sua escolha e depois abra-o. No entanto, você não poderá acessar o terminal real até concluir as etapas em Configurando a AWS .

Configurando a AWS

Neste tutorial, presumimos que você tem uma Amazon Virtual Private Cloud (VPC) e pode simplesmente usar a configuração padrão de VPC criada com a maioria das contas. Nesta seção, você configura sua implantação da AWS criando uma instância do EC2 e conectando-se a ela.

Observação:  O procedimento e as capturas de tela a seguir para criar uma instância do EC2 foram verificados no momento da redação deste documento, mas estão sujeitos a alterações pela AWS. Adapte as instruções conforme necessário.

  1. Na página inicial da AWS , entre no Console (de gerenciamento da AWS) ou crie uma nova conta primeiro, se necessário.

  2. Clique em Serviços na barra de título do Console e depois em EC2 na seção Computação .

    Captura de tela mostrando a seleção de 'EC2' na página 'Serviços' da AWS

  3. Clique no botão Iniciar instância na página do Painel do EC2 que é aberta.

  4. Na página Etapa 1 , clique no botão Selecionar na linha Tipo de volume SSD do Ubuntu Server 20.04 LTS (HVM) e mantenha a seleção de arquitetura padrão de 64 bits (x86) .

    Captura de tela da página 'Etapa 1' no assistente de criação de instância do Amazon EC2

  5. Na página Etapa 2 , selecione o tipo de instância t2.micro , que no momento em que este artigo foi escrito está marcado como Elegível para nível gratuito e selecionado por padrão. Clique em Avançar: Configurar detalhes da instância  botão.

    Captura de tela da página 'Etapa 2' no assistente de criação de instância do Amazon EC2

  6. Na página Etapa 3 , certifique-se de que a VPC que você deseja usar esteja selecionada no campo Rede e que o campo Atribuir IP público automaticamente esteja definido como a configuração padrão Usar sub-rede (Ativar) ou como Ativar . Deixe o restante das configurações com os valores padrão.

    Captura de tela da página 'Etapa 3' no assistente de criação de instância do Amazon EC2

  7. Clique em 6. Configure o Grupo de Segurança na parte superior da página.

  8. Na página Etapa 6 , execute as seguintes etapas para permitir tráfego HTTP e HTTPS de entrada (por padrão, as instâncias do EC2 aceitam apenas tráfego SSH):

    • Clique no botão Adicionar regra abaixo da tabela e selecione HTTP no menu suspenso na coluna Tipo . Para os propósitos deste tutorial, estamos permitindo o acesso de qualquer endereço IP (o valor na coluna Origem é Qualquer lugar 0.0.0.0/0, ::/0 ). Para ambientes de produção, recomendamos que você siga o aviso na página que exige o uso de grupos de segurança para controlar o acesso.

    • Repita a etapa anterior para HTTPS .

    • Clique no botão Revisar e iniciar na parte inferior da página.

    Captura de tela da página 'Etapa 6' no assistente de criação de instância do Amazon EC2

  9. Na página Etapa 7 , clique no botão Iniciar na parte inferior.

  10. Na caixa que aparece, crie um novo par de chaves:

    • Selecione Criar um novo par de chaves no menu suspenso superior.

    • Selecione um tipo de par de chaves. Neste tutorial, estamos selecionando RSA .

    • Digite um nome no campo Nome do par de chaves , como NGINX_key .

    • Clique no botão Baixar par de chaves .

    • Conforme mostrado na captura de tela animada abaixo, uma caixa de seleção substitui o botão Baixar par de chaves . Clique nele para indicar que você pode acessar a chave privada.

    • Clique no botão Iniciar Instâncias .

    Captura de tela da janela pop-up 'Selecione um par de chaves existente ou crie um novo par de chaves' do Amazon EC2

  11. No seu utilitário gerenciador de arquivos, mova o arquivo .pem baixado (no tutorial, NGINX_key.pem ) para um local seguro. Para o tutorial, estamos colocando-o no diretório /Desktop/NGINX .

  12. Se estiver usando um terminal Windows, siga as instruções da AWS para baixar o utilitário PuTTYgen e converter o arquivo .pem em um arquivo .ppk .

  13. Na página Status de inicialização , clique no botão Exibir instâncias na parte inferior.

  14. Na página Instâncias que é aberta, a nova instância aparece na tabela. Dê um nome a ele:

    • Clique no ícone de lápis na coluna Nome .

    • Digite o nome na caixa pop-up Editar nome e clique no botão Salvar .

    Captura de tela da página 'Instâncias' do Amazon EC2 mostrando a edição do nome da instância

  15. Clique no botão Conectar na parte superior da tela. Uma janela como a seguinte será exibida. Abra a aba do cliente SSH e siga as instruções para se conectar à instância. Se estiver usando o Windows, substitua .ppk por .pem nos comandos.

    Captura de tela da janela pop-up 'Conectar à instância' do Amazon EC2

Instalando o software NGINX

Agora que seu ambiente AWS está configurado, é hora de instalar o NGINX Open Source ou o NGINX Plus , que você pode testar gratuitamente por 30 dias. Ambas as opções funcionam no contexto deste tutorial, mas se você quiser explorar mais os recursos avançados do NGINX Plus , solicite uma avaliação gratuita.

Instalando o NGINX Open Source

A maioria das distribuições Linux e variantes BSD disponibilizam o NGINX Open Source em seus repositórios de pacotes padrão, mas geralmente não é a versão mais recente. Recomendamos baixar o NGINX Open Source diretamente do nginx.org . Existem apenas algumas etapas extras para adicionar o repositório NGINX ao gerenciador de pacotes do Ubuntu ( apt ).

Para instalar o NGINX Open Source, siga estas etapas:

  1. Acesse seu terminal.

  2. Baixe a chave de assinatura NGINX:

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. Adicione a chave:

    $ sudo apt-key adicionar nginx_signing.key
  4. Altere o diretório para /etc/apt .

    $ cd /etc/apt
  5. Edite o arquivo sources.list , acrescentando este texto no final:

    deb http://nginx.org/pacotes/ubuntu focal nginx
    deb-src http://nginx.org/pacotes/ubuntu focal nginx

    Observação:  A palavra-chave focal em cada uma dessas linhas corresponde ao Ubuntu 20.04. Se você estiver usando uma versão diferente do Ubuntu, substitua a primeira palavra do nome do código de lançamento (por exemplo, bionic para Ubuntu 18.04).

  6. Atualize o software NGINX:

    $ sudo apt-get update
  7. Instalar o NGINX:

    $ sudo apt-get install nginx
  8. Digite Y quando solicitado.

  9. Inicie o NGINX:

    $ sudo systemctl iniciar nginx.service
  10. Verifique seu status:

    $ sudo systemctl status nginx.service
  11. Continue para abrir sua página da Web .

Instalando o NGINX Plus

  1. Se você ainda não tem o NGINX Plus, inscreva-se para um teste gratuito de 30 dias .

  2. Quando você receber a notificação por e-mail de que sua assinatura de avaliação está disponível, siga as instruções fornecidas para baixar seu certificado de segurança, chave privada e JWT e, em seguida, instalar o NGINX Plus.

  3. Quando a instalação estiver concluída e o NGINX Plus estiver em execução, continue para Abrindo sua página da Web .

Abrindo sua página da Web

Agora que você iniciou o software NGINX, dê uma olhada na página da web que o NGINX e o NGINX Plus servem por padrão antes de configurá-los para entregar o conteúdo do seu site. Siga estes passos:

  1. Navegue até a aba Instâncias no Painel do EC2 se você ainda não estiver lá. (Uma maneira é clicar em Serviços na barra de navegação superior do Console, EC2 na seção Computação e Instâncias na coluna de navegação à esquerda.)

  2. Role para a direita na tabela até ver o endereço IP público da instância na coluna Endereço IPv4 público (na captura de tela, é 3.22.51.xxx). Selecione o endereço e copie-o para o buffer de colagem.

    Captura de tela da página 'Instâncias' do Amazon EC2 mostrando o campo 'Endereço IPv4 público' para uma instância

  3. Abra uma nova aba do navegador e cole o endereço na barra de endereços. A página padrão Bem-vindo ao nginx! é exibida, indicando que o NGINX está instalado e em execução, mas ainda não configurado.

    A página de boas-vindas confirma que seu proxy reverso NGINX e servidor web estão ativos e funcionando

Configurando arquivos de amostra

Com uma versão funcional do NGINX ou NGINX Plus instalada, é hora de colocá-la em bom uso! Comece configurando alguns arquivos e diretórios.

  1. Mude o diretório para o seu diretório inicial, caso ainda não esteja lá. Nas instruções a seguir, é /home/ubuntu .

  2. Crie um diretório chamado public_html e entre nele.

  3. No diretório public_html , crie um arquivo chamado index.html e um diretório chamado application1 .

  4. No diretório application1 , crie um arquivo chamado app1.html com algum texto nele.

  5. Retorne ao seu diretório inicial.

  6. Crie um diretório chamado data .

  7. No diretório de dados , crie um diretório chamado images .

Servindo páginas e imagens

Nosso primeiro caso de uso para NGINX ou NGINX Plus é fornecer páginas e imagens aos usuários por meio de uma página da web.

  1. Altere o diretório para /etc/nginx/conf.d .

  2. Renomeie default.conf para default.conf.bak para evitar que o NGINX ou o NGINX Plus o utilizem como arquivo de configuração padrão.

  3. Crie um arquivo chamado server1.conf com esta configuração:

    servidor { raiz /home/ubuntu/public_html;
    
    localização /application1 { }
    
    localização /images { 
    raiz /home/ubuntu/data; 
    }
    }

    Documentação da diretiva: localização , raiz , servidor

  4. Altere o diretório para ~/data/images .

  5. Encontre uma imagem que você deseja servir e copie-a para o diretório ( ~/data/images ). Como exemplo, o comando a seguir copia o logotipo do NGINX :

    $ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
  6. Recarregue o NGINX ou NGINX Plus:

    $ sudo nginx -s recarregar
  7. Em um navegador da Web, solicite a imagem neste URL, onde NGINX-server é o endereço IP público da sua instância EC2:

    https:// NGINX-server /images/NGINX-logo.png

  8. Acesse também o aplicativo e observe o que você ganha:

    https:// NGINX-server /application1/app1.html

Configurando um servidor proxy

Agora que você tem um servidor web funcionando, é hora de aprender como configurá-lo para rotear o tráfego. Esse recurso permite que você passe tráfego para outros servidores e é um passo importante para configurar o balanceamento de carga. Siga estes passos:

  1. No diretório ~/data , crie um diretório chamado server2 .

  2. No diretório server2 , crie um diretório chamado sampleApp .

  3. No diretório sampleApp , crie um arquivo chamado index.html com algum texto nele.

  4. Altere o diretório para /etc/nginx/conf.d .

  5. Crie um arquivo chamado server2.conf com esta configuração:

    servidor { ouvir 8080;
    raiz /home/ubuntu/data/server2;
    }

    Documentação de diretivas: listen , root , server

  6. Modifique server1.conf adicionando uma diretiva proxy_pass no primeiro bloco de localização , como segue:

    servidor { raiz /home/ubuntu/public_html;
    
    localização /application1 {
    proxy_pass http://localhost:8080/sampleApp;
    }
    
    localização /images {
    raiz /home/ubuntu/data;
    }
    }

    Documentação da diretiva: location , proxy_pass , root , server

  7. Recarregue o NGINX ou NGINX Plus:

    $ sudo nginx -s recarregar
  8. Acesse a seguinte URL no seu navegador e observe o que mudou em comparação a quando você acessou em Servindo Páginas e Imagens :

    https:// NGINX-server /application1/index.html

Então é isso! Agora você tem uma instância funcional do Ubuntu executando o NGINX, que está pronto para ser executado como um servidor proxy.

Para obter instruções sobre como implantar o NGINX e o NGINX Plus na AWS para casos de uso adicionais, consulte nossos guias de implantação .

Conclusão

Neste tutorial, você aprendeu como configurar o NGINX ou o NGINX Plus para servir arquivos e imagens pela Internet e atuar como um proxy reverso. Se você quiser aprender mais sobre o NGINX, oferecemos o curso de treinamento NGINX Core ( ministrado por instrutor ou sob demanda ), que abrange os tópicos deste tutorial, bem como outros fundamentos do serviço web e entrega de aplicativos, incluindo balanceamento de carga, roteamento baseado em localização e segurança. Confira também a documentação em nginx.org e o Guia de administração do NGINX Plus – exceto quando indicado, os artigos se aplicam ao NGINX Open Source e também ao NGINX Plus.


"Esta postagem do blog pode fazer referência a produtos que não estão mais disponíveis e/ou não têm mais suporte. Para obter as informações mais atualizadas sobre os produtos e soluções F5 NGINX disponíveis, explore nossa família de produtos NGINX . O NGINX agora faz parte do F5. Todos os links anteriores do NGINX.com redirecionarão para conteúdo semelhante do NGINX no F5.com."