Cómo hacer que el servidor Nginx escuche en múltiples puertos ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
10.12.2024

Cómo hacer que el servidor Nginx escuche en múltiples puertos

Nginx es un servidor web y proxy inverso versátil que puede configurarse para escuchar en varios puertos, lo que lo hace adecuado para servir diferentes sitios web, aplicaciones o servicios desde el mismo servidor. Configurar Nginx para escuchar en múltiples puertos puede ser útil para servir diferentes contenidos en diferentes puertos, o para soportar servicios como HTTP (puerto 80) y HTTPS (puerto 443). Esta guía le mostrará cómo configurar Nginx para escuchar en varios puertos.

Requisitos previos

  • Un servidor con Nginx instalado y funcionando.
  • Acceso root o sudo para modificar los archivos de configuración de Nginx.
  • Conocimientos básicos de los archivos de configuración de Nginx (nginx.conf y archivos de configuración específicos del sitio).

Configuración básica de Nginx

Los archivos de configuración de Nginx se encuentran normalmente en /etc/nginx/nginx.conf o en /etc/nginx/sites-available/ para configuraciones específicas de sitio, dependiendo de la distribución de Linux. La directiva principal para escuchar en un puerto es listen, que especifica la dirección IP y el puerto en el que Nginx debe escuchar.

Paso 1: Abrir el archivo de configuración de Nginx

Para configurar Nginx para escuchar en múltiples puertos, necesita editar el archivo de configuración de Nginx. Abra el archivo con su editor de texto preferido:

sudo nano /etc/nginx/nginx.conf

O, si está editando la configuración de un sitio específico:

sudo nano /etc/nginx/sitios-disponibles/ejemplo.conf

Paso 2: Añadir varias directivas de escucha

Para hacer que Nginx escuche en múltiples puertos, puedes añadir múltiples directivas listen dentro de un bloque de servidor. Este es un ejemplo de un bloque de servidor que escucha en los puertos 80 y 8080:

servidor {
listen 80;
listen 8080;
nombre_servidor ejemplo.com;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

En esta configuración:

  • listen 80; indica a Nginx que escuche peticiones HTTP en el puerto 80.
  • listen 8080; indica a Nginx que escuche las peticiones HTTP en el puerto 8080.

Esto significa que las peticiones realizadas a http://example.com:80 y http://example.com:8080 serán gestionadas por este bloque de servidor.

Paso 3: Configuración de HTTPS con múltiples puertos

Si desea habilitar HTTPS en un puerto diferente (por ejemplo, 8443), puede configurarlo de la siguiente manera:

servidor {
listen 443 ssl;
listen 8443 ssl;
nombre_servidor ejemplo.com;
ssl_certificate /etc/nginx/ssl/ejemplo.com.crt;
ssl_certificate_key /etc/nginx/ssl/ejemplo.com.key;root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

En esta configuración:

  • listen 443 ssl; hace que Nginx escuche peticiones HTTPS en el puerto por defecto 443.
  • listen 8443 ssl; hace que Nginx escuche peticiones HTTPS en el puerto 8443.
  • Las rutas del certificado SSL y la clave (ssl_certificate y ssl_certificate_key) se utilizan para habilitar HTTPS.

Paso 4: Verificación de la configuración

Después de realizar los cambios, es crucial verificar la configuración de Nginx en busca de errores de sintaxis antes de aplicar los cambios. Ejecutar:

sudo nginx -t

Si la salida dice que la sintaxis es correcta, la configuración es correcta.

Paso 5: Reinicie Nginx

Para aplicar los cambios, reinicie Nginx:

sudo systemctl restart nginx

O, si tu sistema utiliza el servicio

sudo service nginx restart

Paso 6: Probar la configuración

Para verificar que Nginx está escuchando correctamente en múltiples puertos:

  1. Compruebe los puertos de escucha: Utilice netstat o ss para verificar que Nginx está escuchando en los puertos especificados:
    sudo netstat -tuln | grep nginx

    o
    sudo ss -tuln | grep nginx

    Esto mostrará una lista de los puertos que Nginx está escuchando. Deberías ver entradas para los puertos 80, 8080, 443 y 8443.
  2. Accede al servidor: Abra su navegador web e intente acceder al servidor utilizando los diferentes puertos:
    • http://example.com
    • http://example.com:8080
    • https://example.com
    • https://example.com:8443

    Deberías ver el mismo contenido siendo servido si la configuración fue hecha correctamente.

Avanzado: Configuración de contenidos diferentes para puertos diferentes

Puede configurar que se sirvan diferentes contenidos en función del puerto. Por ejemplo, servir diferentes directorios raíz para cada puerto:

servidor {
listen 80;
nombre_servidor ejemplo.com;
root /var/www/html80;
index index.html;location / {
try_files $uri $uri/ =404;
}
}

servidor {
listen 8080;
nombre_servidor ejemplo.com;
root /var/www/html8080;
index index.html;location / {
try_files $uri $uri/ =404;
}
}

En este ejemplo:

  • Las peticiones a http://example.com (puerto 80) servirán contenido de /var/www/html80.
  • Las peticiones a http://example.com:8080 servirán contenido de /var/www/html8080.

Conclusión

Configurar Nginx para que escuche en múltiples puertos te permite servir diferentes servicios, soportar configuraciones personalizadas o proporcionar flexibilidad en tu arquitectura de red. Ya sea que necesites que Nginx maneje múltiples puertos HTTP y HTTPS o que dirija diferentes puertos a diferentes contenidos, la directiva listen de Nginx hace que sea fácil de configurar. Sólo asegúrese de verificar sus configuraciones, reiniciar Nginx, y probar cada puerto para asegurarse de que todo funciona como se espera.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills