Como fazer o servidor Nginx escutar em várias portas ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
10.12.2024

Como fazer o servidor Nginx escutar em várias portas

O Nginx é um servidor da Web e proxy reverso versátil que pode ser configurado para escutar em várias portas, o que o torna adequado para atender a diferentes sites, aplicativos ou serviços a partir do mesmo servidor. A configuração do Nginx para escutar em várias portas pode ser útil para atender a diferentes conteúdos em diferentes portas ou para oferecer suporte a serviços como HTTP (porta 80) e HTTPS (porta 443). Este guia mostrará a você como configurar o Nginx para escutar em várias portas.

Pré-requisitos

  • Um servidor com o Nginx instalado e em execução.
  • Acesso root ou sudo para modificar os arquivos de configuração do Nginx.
  • Conhecimento básico dos arquivos de configuração do Nginx (nginx.conf e arquivos de configuração específicos do site).

Visão geral da configuração básica do Nginx

Os arquivos de configuração do Nginx geralmente estão localizados em /etc/nginx/nginx.conf ou em /etc/nginx/sites-available/ para configurações específicas do site, dependendo da distribuição do Linux. A principal diretiva para escutar em uma porta é listen, que especifica o endereço IP e a porta que o Nginx deve escutar.

Etapa 1: abrir o arquivo de configuração do Nginx

Para configurar o Nginx para escutar em várias portas, você precisa editar o arquivo de configuração do Nginx. Abra o arquivo usando seu editor de texto preferido:

sudo nano /etc/nginx/nginx.conf

Ou, se estiver editando a configuração de um site específico:

sudo nano /etc/nginx/sites-available/example.conf

Etapa 2: adicionar várias diretivas de escuta

Para que o Nginx escute em várias portas, você pode adicionar várias diretivas listen em um bloco de servidor. Aqui está um exemplo de um bloco de servidor que escuta nas portas 80 e 8080:

server {
listen 80;
listen 8080;
nome_do_servidor exemplo.com;
root /var/www/html;
index index.html;
localização / {
try_files $uri $uri/ =404;
}
}

Nessa configuração:

  • listen 80; instrui o Nginx a escutar solicitações HTTP na porta 80.
  • listen 8080; instrui o Nginx a escutar solicitações HTTP na porta 8080.

Isso significa que as solicitações feitas para http://example.com:80 e http://example.com:8080 serão tratadas por esse bloco de servidor.

Etapa 3: configuração de HTTPS com várias portas

Se quiser ativar o HTTPS em uma porta diferente (por exemplo, 8443), você poderá configurá-lo da seguinte forma:

servidor {
listen 443 ssl;
listen 8443 ssl;
nome_do_servidor exemplo.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;root /var/www/html;
index index.html;
localização / {
try_files $uri $uri/ =404;
}
}

Nessa configuração:

  • listen 443 ssl; faz com que o Nginx escute solicitações HTTPS na porta padrão 443.
  • listen 8443 ssl; faz com que o Nginx escute solicitações HTTPS na porta 8443.
  • O certificado SSL e os caminhos de chave (ssl_certificate e ssl_certificate_key) são usados para ativar o HTTPS.

Etapa 4: verificação da configuração

Depois de fazer alterações, é fundamental verificar se há erros de sintaxe na configuração do Nginx antes de aplicar as alterações. Executar:

sudo nginx -t

Se a saída indicar que a sintaxe está ok, a configuração está correta.

Etapa 5: reiniciar o Nginx

Para aplicar as alterações, reinicie o Nginx:

sudo systemctl restart nginx

Ou, se seu sistema usar o service:

sudo service nginx restart

Etapa 6: Testar a configuração

Para verificar se o Nginx está escutando corretamente em várias portas:

  1. Verifique as portas de escuta: Use netstat ou ss para verificar se o Nginx está escutando nas portas especificadas:
    sudo netstat -tuln | grep nginx

    ou:
    sudo ss -tuln | grep nginx

    Isso exibirá uma lista das portas que o Nginx está escutando. Você deverá ver entradas para as portas 80, 8080, 443 e 8443.
  2. Acesse o servidor: Abra o navegador da Web e tente acessar o servidor usando as diferentes portas:
    • http://example.com
    • http://example.com:8080
    • https://example.com
    • https://example.com:8443

    Você deverá ver o mesmo conteúdo sendo servido se a configuração tiver sido feita corretamente.

Avançado: Configuração de conteúdo diferente para portas diferentes

Você pode configurar conteúdo diferente para ser servido com base na porta. Por exemplo, servir diretórios raiz diferentes para cada porta:

server {
listen 80;
nome_do_servidor exemplo.com;
root /var/www/html80;
index index.html;location / {
try_files $uri $uri/ =404;
}
}

server {
listen 8080;
nome_do_servidor exemplo.com;
root /var/www/html8080;
index index.html;location / {
try_files $uri $uri/ =404;
}
}

Neste exemplo:

  • As solicitações para http://example.com (porta 80) servirão o conteúdo de /var/www/html80.
  • As solicitações para http://example.com:8080 exibirão o conteúdo de /var/www/html8080.

Conclusão

A configuração do Nginx para escutar em várias portas permite que você atenda a diferentes serviços, ofereça suporte a configurações personalizadas ou forneça flexibilidade em sua arquitetura de rede. Se você precisa que o Nginx manipule várias portas HTTP e HTTPS ou direcione portas diferentes para conteúdos diferentes, a diretiva listen do Nginx facilita a configuração. Certifique-se apenas de verificar suas configurações, reiniciar o Nginx e testar cada porta para garantir que tudo funcione conforme o esperado.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills