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:
- 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. - 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.