Editado 3 Semanas atrás por ExtremeHow Equipe Editorial
DebianNginxServidor WebDesenvolvimento WebConfiguração do ServidorLinuxAdministração de SistemasCódigo AbertoInterface de Linha de ComandoTI
Tradução atualizada 3 Semanas atrás
Nginx é um software de servidor web amplamente utilizado, conhecido por seu alto desempenho, estabilidade, baixo consumo de recursos e configuração simples. Neste guia detalhado, veremos como configurar um servidor web com Nginx no sistema operacional Debian. Antes de prosseguirmos com as etapas, é essencial entender o que é o Nginx e por que ele é benéfico para a configuração de servidores web.
Nginx (pronunciado como "engine-x") é um software de código aberto para serviços web, proxy reverso, cache, balanceamento de carga, transmissão de mídia e muito mais. Ele começou como um projeto para resolver o problema C10k - lidar com dez mil conexões de uma só vez. Atualmente, o Nginx é popular por seu desempenho e eficiência no gerenciamento de cargas altas. Ele pode atuar como um servidor proxy reverso para protocolos HTTP, HTTPS, SMTP, POP3 e IMAP, como um balanceador de carga e como um cache HTTP, entre outros usos. Sendo de código aberto, é gratuito para uso e está constantemente sendo melhorado por colaboradores globais.
Antes de começar, certifique-se de ter as seguintes coisas:
sudo
.Uma vez que você atenda a esses pré-requisitos, pode prosseguir para instalar e configurar o Nginx no seu servidor Debian.
O primeiro passo é garantir que seu servidor esteja atualizado com os pacotes mais recentes. Um sistema atualizado reduz problemas de incompatibilidade e aumenta a segurança. Use o seguinte comando para atualizar seu servidor:
sudo apt update sudo apt upgrade
O comando apt update
atualiza a lista de pacotes e suas versões disponíveis. O comando apt upgrade
atualiza pacotes antigos com versões mais novas.
O gerenciador de pacotes APT do Debian facilita a instalação de pacotes de software como o Nginx. Execute o seguinte comando para instalar o Nginx:
sudo apt install nginx
Este comando obterá e instalará o pacote Nginx e suas dependências. Após a conclusão da instalação, o Nginx começará a funcionar automaticamente.
Uma vez que o Nginx esteja instalado, é necessário verificar sua instalação e garantir que esteja funcionando corretamente. Use o seguinte comando para verificar o status do Nginx:
sudo systemctl status nginx
A saída esperada mostra que o Nginx está ativo e em execução. Se você quiser iniciar ou parar o serviço Nginx, pode usar:
sudo systemctl start nginx sudo systemctl stop nginx
Depois de confirmar que o Nginx está em execução, abra um navegador web e procure o endereço IP do seu servidor. Se você não souber o endereço IP do seu servidor, pode descobri-lo assim:
hostname -I
Quando você digitar o endereço IP do seu servidor na barra de endereço do navegador, deverá ver a página padrão de boas-vindas do Nginx. Isso verifica se o Nginx está renderizando páginas web corretamente.
Nos sistemas Debian, o UFW (Firewall Descomplicado) é comumente usado como software de gerenciamento de firewall. Se o UFW estiver em execução no seu servidor, você deve permitir o tráfego HTTP para acessar publicamente seu servidor web através do firewall. Você pode verificar o status atual do UFW da seguinte forma:
sudo ufw status
Se o UFW estiver ativado, use este comando para permitir o tráfego HTTP do Nginx:
sudo ufw allow 'Nginx HTTP'
Verifique novamente a situação para garantir que as regras relevantes sejam aplicadas:
sudo ufw status
O Nginx é executado como um serviço em segundo plano. Você pode gerenciar este serviço usando o comando systemctl. Aqui estão alguns comandos systemctl úteis para gerenciar o Nginx:
sudo systemctl start nginx
: Inicia o serviço Nginx.sudo systemctl stop nginx
: Para o serviço Nginx.sudo systemctl restart nginx
: Reinicia o serviço Nginx. Use isso após fazer alterações nos arquivos de configuração ou resolver problemas menores.sudo systemctl reload nginx
: Reinicia o Nginx sem interromper as conexões. Útil para aplicar alterações sem interromper os usuários.sudo systemctl enable nginx
: Define Nginx para iniciar automaticamente na inicialização.sudo systemctl disable nginx
: Impede que Nginx inicie automaticamente na inicialização.Os arquivos de configuração do Nginx estão normalmente localizados no diretório /etc/nginx
. O arquivo de configuração principal é o /etc/nginx/nginx.conf
, que contém instruções para gerenciar módulos, definir permissões de usuário e mais.
Frequentemente, a configuração do host virtual é gerenciada separadamente no diretório /etc/nginx/sites-available
. Este diretório contém arquivos de configuração para domínios individuais, que são linkados simbolicamente para /etc/nginx/sites-enabled
para serem ativados. Você também pode encontrar trechos de configuração em /etc/nginx/snippets
para configurações reutilizáveis.
Blocos de servidor, o equivalente do Apache aos hosts virtuais, permitem que o Nginx execute vários sites em um único servidor. Primeiro, vá para /etc/nginx/sites-available/
e crie um novo arquivo de configuração:
sudo nano /etc/nginx/sites-available/example.com
No arquivo de configuração a seguir, substitua "example.com" pelo seu nome de domínio:
server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Com esta configuração, as solicitações para 'example.com' serão encaminhadas para o aplicativo em execução em 127.0.0.1:8080. Use valores padrão sensatos ou ajuste a configuração com base em suas necessidades.
Crie um link simbólico para o seu arquivo de configuração em site-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Esta ação ativa seu bloco de servidor. Teste a nova configuração para detectar possíveis erros:
sudo nginx -t
Se não houver erros, reinicie o Nginx para aplicar as mudanças:
sudo systemctl restart nginx
Você pode testar a configuração criando um arquivo HTML estático básico. Crie um novo diretório que atuará como seu diretório raiz da web:
sudo mkdir -p /var/www/example.com/html
Defina as permissões apropriadas:
sudo chown -R $USER:$USER /var/www/example.com/html
Crie um arquivo HTML simples:
nano /var/www/example.com/html/index.html
Adicione o seguinte conteúdo ao index.html
:
<!DOCTYPE html> <html> <head> <title>Bem-vindo</title> </head> <body> <h1>Bem-vindo ao example.com!</h1> </body> </html>
Vá para http://your_server_ip
ou http://example.com
para visualizar sua página web.
Para proteger seu servidor web, é recomendável implementar um certificado SSL/TLS para o site. Certificados SSL gratuitos podem ser obtidos no Let's Encrypt, uma autoridade certificadora que oferece certificados gratuitos com suporte para automação.
Instale a utilidade Certbot e o plugin Nginx para recuperação e instalação de certificados SSL:
sudo apt install certbot python3-certbot-nginx
Em seguida, solicite um certificado usando o Certbot:
sudo certbot --nginx
O Certbot solicitará informações necessárias, como seu nome de domínio e email. Após a conclusão bem-sucedida, o Certbot recarrega automaticamente o Nginx. Visite https://example.com
para confirmar a conexão HTTPS segura com o ícone de cadeado.
O Certbot configura um trabalho systemd para lidar automaticamente com renovações de certificados SSL. Você também pode realizar uma verificação de renovação manual:
sudo certbot renew --dry-run
Verifique a atualização e certifique-se de que seja bem-sucedida sem nenhum erro.
Uma vez que o Nginx esteja configurado, você pode hospedar e servir vários sites. Lembre-se de monitorar o desempenho do servidor, gerenciar logs e manter o Nginx e os pacotes do servidor atualizados para manter a segurança e eficiência. O servidor web Nginx é uma ferramenta poderosa adequada para muitas tarefas web e necessidades de arquitetura.
Configurar um servidor web com Nginx no Debian envolve definir configuração, adicionar blocos de servidor e garantir a segurança com SSL. Compreender o básico da instalação, configuração e gerenciamento do Nginx estabelece as bases para aplicativos mais complexos e implantações de serviços. Você agora deve ter um servidor web em execução pronto para servir páginas ou aplicativos com alta eficiência.
Se você encontrar algo errado com o conteúdo do artigo, você pode