Servidor Web Nginx: Guia Completo para Configurar e Gerenciar no Ubuntu

Servidor Web Nginx Guia Completo para Configurar e Gerenciar no Ubuntu

Se você está buscando entender melhor o que é o Nginx e como ele funciona, está no lugar certo. Neste artigo, vamos explorar todos os aspectos essenciais deste servidor web e proxy reverso poderoso, explicando suas funcionalidades, vantagens e aplicações. Vamos começar nossa jornada pelo mundo do Nginx.

O Nginx é reconhecido como um dos servidores Web mais populares em todo o mundo, sendo responsável por hospedar muitos dos sites mais visitados na Internet. Ele é uma escolha leve, podendo ser utilizado como servidor Web ou proxy reverso.

Neste guia, também exploraremos o procedimento de instalação do Nginx no servidor Ubuntu 20.04, administraremos o processo do Nginx e configuraremos blocos de servidor para hospedar diversos domínios em um único servidor.

Introdução ao Nginx

O Nginx é um servidor web de código aberto que ganhou ampla popularidade por sua eficiência, desempenho e flexibilidade. Originalmente criado por Igor Sysoev, o Nginx foi projetado para superar algumas das limitações dos servidores web tradicionais, como o Apache. Ele se destaca por sua capacidade de lidar com um grande número de conexões simultâneas, tornando-o uma escolha ideal para sites de alto tráfego.

Como Funciona o Nginx

O Nginx é conhecido por sua arquitetura leve e orientada a eventos. Diferentemente dos servidores web que utilizam threads para lidar com conexões, o Nginx utiliza um modelo assíncrono, permitindo que uma única instância gerencie várias conexões simultaneamente sem a sobrecarga de criação de threads individuais para cada conexão.

Benefícios do Uso do Nginx

Ao considerar a adoção do Nginx, há vários benefícios notáveis a serem considerados:

1. Alta Performance

Devido ao seu modelo assíncrono e à eficiente manipulação de conexões, o Nginx oferece um desempenho excepcional, tornando-o ideal para lidar com um grande volume de solicitações.

2. Proxy Reverso

O Nginx é amplamente utilizado como proxy reverso, permitindo que direcione solicitações para diferentes servidores com base em critérios como roteamento, balanceamento de carga e cache.

3. Balanceamento de Carga

Com recursos integrados de balanceamento de carga, o Nginx distribui eficazmente as solicitações entre vários servidores, garantindo uma distribuição equilibrada do tráfego.

4. Servidor de Arquivos Estáticos

O Nginx é excelente para servir arquivos estáticos, como imagens, CSS e JavaScript, devido à sua eficiência e baixo consumo de recursos.

Aplicações do Nginx

O Nginx é altamente versátil e pode ser utilizado em diversas situações:

1. Hospedagem de Sites

Devido à sua alta performance, o Nginx é uma escolha popular para hospedar sites de todos os tamanhos, especialmente os que recebem um grande número de visitantes.

2. Aplicações Web

O Nginx pode ser usado como um proxy reverso para direcionar o tráfego para várias instâncias de aplicativos, melhorando a escalabilidade e a redundância.

3. Servidor de Mídia

Com sua capacidade de servir arquivos estáticos eficientemente, o Nginx é frequentemente utilizado para entregar conteúdo de mídia, como vídeos e áudio.

Pré-requisitos para a Instalação

Antes de iniciarmos, é necessário ter um usuário regular, sem privilégios de root, configurado no servidor e com permissões sudo. Se você não tem uma conta de usuário configurada, você pode seguir o nosso Guia de Configuração Inicial do Servidor para o Ubuntu 20.04.

Após criar uma conta de usuário, faça o login com o usuário não-root para dar continuidade.

Passo 1 – Instalação do Nginx

Dado que o Nginx encontra-se nos repositórios padrão do Ubuntu, você pode instalá-lo a partir desses repositórios utilizando o sistema de gerenciamento de pacotes apt.

Como esta é nossa primeira interação com o sistema de pacotes apt nesta sessão, também vamos atualizar nosso índice de pacotes local para que possamos acessar as listagens de pacotes mais recentes. Após isso, o Nginx pode ser instalado com o seguinte comando:

sudo apt update 
sudo apt install nginx
Clique aqui se você está enfrentando um problema de bloqueio ao usar o apt, e recebe a mensagem de erro “Could not get lock /var/lib/dpkg/lock”

Isso geralmente significa que outro processo está utilizando o sistema de gerenciamento de pacotes no momento. Isso pode ocorrer se você estiver tentando executar múltiplas instâncias do apt ao mesmo tempo ou se outro programa estiver usando o sistema de gerenciamento de pacotes.

Para resolver esse problema, siga os passos abaixo:

  1. Reinicie o Sistema: Se as etapas acima não resolverem o problema, uma opção é reiniciar o sistema. Isso garantirá que todos os processos sejam encerrados e qualquer bloqueio seja liberado.
  2. Verifique se Outros Processos Estão em Execução: Antes de tudo, verifique se nenhum outro processo está utilizando o sistema de gerenciamento de pacotes. Isso pode incluir atualizações automáticas em segundo plano ou outros comandos apt em execução.
  3. Encerre Processos em Execução: Se você tiver certeza de que nenhum outro processo está em execução e ainda assim receber a mensagem de erro, você pode tentar encerrar qualquer instância do apt que possa estar em execução. Você pode fazer isso com o seguinte comando: sudo killall apt apt-get
  4. Remova o Arquivo de Bloqueio: Às vezes, o arquivo de bloqueio /var/lib/dpkg/lock pode não ter sido liberado corretamente. Você pode removê-lo manualmente usando o seguinte comando: sudo rm /var/lib/dpkg/lock
  5. Atualize a Lista de Pacotes: Após verificar e resolver possíveis bloqueios, é recomendável atualizar a lista de pacotes antes de prosseguir com outros comandos apt: sudo apt update

Uma vez que você confirme o procedimento, o apt instalará o Nginx juntamente com todas as dependências necessárias no seu servidor.

servidor web

Passo 2 — Verificando o Servidor Web

Após a conclusão do processo de instalação, o Nginx será iniciado automaticamente no Ubuntu 20.04. O servidor Web já deve estar em execução.

Para confirmar que o serviço está funcionando, você pode utilizar o sistema init systemd ao digitar:

systemctl status nginx

A saída mostrará informações sobre o estado atual do serviço:

o que é nginx - Descubra e aprenda a instalar

Essa saída confirma que o serviço foi iniciado com sucesso. No entanto, a melhor maneira de verificar isso é solicitando uma página do Nginx.

Você pode acessar a página inicial padrão do Nginx para confirmar que o software está funcionando corretamente, navegando até o endereço IP do seu servidor. Caso você não saiba o endereço IP do servidor, pode obtê-lo utilizando:

Leva 1 minuto 1 minuto

Comando para ver ip no linux

  1. Usando o comando hostname: (Maneira simples e direta de obter o endereço IP de sua máquina no Linux)


    hostname -I

  2. Usando o comando ifconfig: (em sistemas mais antigos ou se instalado manualmente):


    ifconfig

  3. Usando o comando ip:


    ip addr show

hostname -I
comando para ver ip no linux - hostname -I

Com o endereço IP do servidor em mãos, digite-o na barra de endereço do seu navegador:

http://10.0.2.15/

Nesse ponto, você deve visualizar a página inicial padrão do Nginx:

localhost

Passo 3 — Gerenciando Processos do Nginx

Agora que você tem o seu servidor Web em pleno funcionamento, é fundamental compreender alguns comandos básicos de gerenciamento. Esses comandos serão úteis no controle do seu servidor Nginx. Veja como utilizá-los:

Parar o Servidor Web

Para interromper o servidor Web, basta digitar o seguinte comando:

sudo systemctl stop nginx

Iniciar o Servidor Web

Caso o servidor esteja parado e você deseje iniciá-lo novamente, utilize o comando abaixo:

sudo systemctl start nginx

Reiniciar o Serviço

Em algumas situações, pode ser necessário parar e, em seguida, iniciar o serviço novamente. Utilize o comando a seguir para executar essa ação:Copy code

sudo systemctl restart nginx

Recarregar Configurações

Ao fazer alterações de configuração no Nginx, é possível recarregar o serviço sem causar quedas na conexão. Utilize o seguinte comando:

sudo systemctl reload nginx

Agora que você está familiarizado com esses comandos essenciais de gerenciamento do Nginx, está pronto para prosseguir com a configuração do servidor para hospedar múltiplos domínios.

Passo 4 — Configurando Blocos de Servidor

O uso de blocos de servidor, também conhecidos como virtual hosts, é uma abordagem eficaz para hospedar vários domínios em um único servidor Web Nginx. Vamos guiar você pelo processo de configuração de um bloco de servidor para um domínio específico.

Ao seguir estas etapas, você estará apto a configurar o seu servidor Nginx para oferecer suporte a diversos domínios.

Criando a Estrutura de Diretórios

Antes de prosseguirmos com a configuração, é importante criar a estrutura de diretórios necessária para o novo domínio. Como exemplo vamos criar um domínio de exemplo de nome servicosderede Execute os comandos abaixo:

sudo mkdir -p /var/www/servicosderede/html 
sudo chown -R $USER:$USER /var/www/servicosderede/html 
sudo chmod -R 755 /var/www/servicosderede
Clique aqui para ver a explicação resumida de cada comando:
  1. sudo mkdir -p /var/www/servicosderede/html:
    • sudo: Executa com privilégios de superusuário.
    • mkdir: Cria um diretório.
    • -p: Cria diretórios pais conforme necessário.
    • /var/www/servicosderede/html: Caminho do novo diretório a ser criado.
  2. sudo chown -R $USER:$USER /var/www/servicosderede/html:
    • sudo: Executa com privilégios de superusuário.
    • chown: Altera o proprietário de arquivos/diretórios.
    • -R: Aplica a alteração de forma recursiva.
    • $USER:$USER: Define o usuário e grupo para o diretório.
    • /var/www/servicosderede/html: Caminho do diretório que terá sua propriedade alterada.
  3. sudo chmod -R 755 /var/www/novodominio:
    • sudo: Executa com privilégios de superusuário.
    • chmod: Altera as permissões de arquivos/diretórios.
    • -R: Aplica a alteração de forma recursiva.
    • 755: Define as permissões (leitura/escrita/execução).
    • /var/www/servicosderede: Caminho do diretório que terá suas permissões alteradas.

Resumidamente, os comandos criam um diretório, alteram sua propriedade para o usuário atual e definem suas permissões.

Criando Página de Amostra

  • Crie uma página HTML de amostra para o domínio exemplo servicosderede
  • Utilize o seu editor favorito para criar o arquivo index.html ou faça download abaixo
  • Coloque na pasta: /var/www/servicosderede/html/index.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Servidor Web Nginx</title>
</head>

<body>
<h1>Este é um HTML5 de exemplo</h1>
<h2>Estou sendo executado no Sevidor Web Nginx</h2>
</body>
</html>

Configurando o Bloco de Servidor

Agora, vamos criar e configurar um bloco de servidor para o domínio. Utilize o seguinte comando para criar um arquivo de configuração:

sudo nano /etc/nginx/sites-available/servicosderede

Cole o seguinte bloco de configuração, atualizando-o com o diretório e nome de domínio corretos:

server {

listen 80; 
listen [::]:80; 

root /var/www/servicosderede/html; 
index index.html index.htm index.nginx-debian.html; 

server_name servicosderede www.servicosderede; 

location / { 
	try_files $uri $uri/ =404;
    } 
}

Após editar o arquivo, salve e feche-o.

Clique aqui para aprender como Sair Salvando no editor nano
  1. Pressione Ctrl + O (isso vai preparar para salvar as alterações, “O” de “Write Out”).
  2. Pressione Enter (isso confirmará e salvará as alterações no arquivo que você está editando).
  3. Pressione Ctrl + X para sair do editor.

Em seguida, crie um link simbólico para habilitar o bloco de servidor:

sudo ln -s /etc/nginx/sites-available/servicosderede /etc/nginx/sites-enabled/

Testando e Reiniciando o Nginx

Antes de finalizar, é importante testar a configuração para garantir que não há erros de sintaxe nos arquivos do Nginx

sudo nginx -t

Se nenhum erro for encontrado a seguinte mensagem irá aparecer.

sudo nginx t para verificar há erros de sintaxe nos arquivos do Nginx

Reinicie o Nginx para aplicar as alterações

sudo systemctl restart nginx

Agora, o Nginx estará pronto para exibir o conteúdo do seu novo domínio. Para testar, acesse http://servicosderede em seu navegador e você deverá ver a página de amostra.

Para testar os blocos de servidor localmente, sem depender de configurações de DNS ou registro de domínio. Para isso, você pode fazer uso do arquivo de hosts do sistema (/etc/hosts) para simular a resolução de nomes localmente. Aqui estão os passos que você pode seguir:

sudo nano /etc/hosts

Adicione uma linha semelhante à seguinte:

127.0.0.1 servicosderede www.servicosderede

O arquivo deve ficar com esse formato:

Bloco de Servidor etc hosts virtual host

Agora você deve ser capaz de acessar o seu site local digitando http://www.servicosderede/ no navegador. Lembre-se de que essa configuração é apenas para fins de teste local e não terá efeito em servidores públicos ou em ambientes de produção.

Configurando Bloco de Servidor Nginx

Perguntas Frequentes sobre Nginx

O que é Nginx?

O Nginx é um servidor web de alto desempenho, usado também como balanceador de carga e servidor proxy reverso. Ele é conhecido por sua estabilidade, conjunto rico de recursos, configuração simples e baixo consumo de recursos.

Qual é a função do Nginx?

A principal função do Nginx é servir conteúdo web, como páginas HTML, arquivos CSS e JavaScript. Além disso, ele pode ser usado para balancear carga entre vários servidores, otimizar o desempenho do site através do cache de conteúdo e atuar como um proxy reverso, direcionando solicitações para aplicativos backend e melhorando a segurança e a performance.

Quando usar Nginx?

Você pode considerar usar o Nginx quando:
Precisar de um servidor web rápido e confiável.
Quiser otimizar a performance de um site ou aplicação.
Precisar balancear cargas entre vários servidores ou aplicativos.
Buscar uma solução para servir conteúdo estático eficientemente.
Desejar um proxy reverso para melhorar segurança e performance de um aplicativo backend.

Como executar o Nginx?

Para executar o Nginx, primeiro é necessário instalá-lo em sua máquina ou servidor. Uma vez instalado, você geralmente pode iniciá-lo com o comando nginx. No entanto, a maneira exata pode variar dependendo do sistema operacional que você está usando. Para mais detalhes sobre a instalação e execução, recomenda-se consultar a documentação oficial do Nginx.

Qual porta o Nginx usa?

Por padrão, o Nginx escuta na porta 80 para solicitações HTTP e na porta 443 para solicitações HTTPS. No entanto, estas portas podem ser personalizadas na configuração do Nginx, conforme a necessidade.

Conclusões

O artigo oferece um guia completo sobre o servidor web Nginx, destacando sua popularidade, eficiência e flexibilidade no hospedagem de sites. Abrange a instalação e gerenciamento no Ubuntu 20.04, detalhando sua funcionalidade como servidor web, proxy reverso, balanceador de carga e servidor de arquivos estáticos. O guia também fornece passos para configurar blocos de servidor para hospedar vários domínios e responde a perguntas frequentes sobre o Nginx.

SSD 1TB Os 5 Melhores para O seu Computador em 2024-banner
Prof. Eduardo H Gomes
Prof. Eduardo H Gomes

Mestre em Engenharia da Informação, Especialista em Engenharia da Computação, Cientista da Computação, Professor de Inteligência Artificial no IFSP, 18 anos de docência no Ensino Superior. Apaixonado por Surf, Paraglider, Mergulho livre, Tecnologia, SEO, Banco de Dados e Desenvolvimento Web.