Cómo cambiar el puerto Nginx en Linux


Nginx es un servidor estable de código abierto que impulsa algunos de los sitios web con mayor tráfico en Internet hoy en día. Entre los servicios web, el servidor web Nginx se puede implementar con éxito como equilibrador de carga, proxy inverso web o como servidor proxy POP e IMAP.

De forma predeterminada, el servidor Nginx HTTP escucha la conexión entrante y se une al puerto 80 , que representa el puerto web estándar. Sin embargo, la configuración de TLS, que no está habilitada de forma predeterminada en Nginx, escucha las conexiones seguras en el puerto 443 .

Para hacer que el servidor HTTP Nginx escuche las conexiones web entrantes en otros puertos no estándar, debemos editar el archivo de configuración principal y cambiar o agregar una nueva declaración para reflejar este hecho.

En el sistema basado en Ubuntu y Debian , debemos modificar el archivo /etc/nginx/sites-enabled/default y en RHEL Las distribuciones basadas en y CentOS editan el archivo /etc/nginx/nginx.conf .

Para comenzar, abra el archivo de configuración de Nginx con un editor de texto y cambie el número de puerto como se muestra en el extracto a continuación.

# vi /etc/nginx/sites-enabled/default  [On Debian/Ubuntu]
# vi /etc/nginx/nginx.conf             [On CentOS/RHEL]

En este extracto configuraremos el servidor HTTP Nginx para escuchar las conexiones entrantes en el puerto 3200 . Busque la línea que comienza con la declaración listen en la directiva del servidor y cambie el puerto de 80 a 3200 , como se ilustra en la imagen de abajo.

listen 3200 default_server;

Después de modificar la declaración del puerto Nginx, debe reiniciar el servidor web para enlazar el nuevo puerto en las distribuciones Linux basadas en Debian. Verifique la tabla de sockets de la red local con netstat o el comando ss . El puerto 3200 se debe mostrar en la tabla de la red local del servidor.

# systemctl restart nginx
# netstat -tlpn| grep nginx
# ss -tlpn| grep nginx

En la distribución de Linux basada en CentOS o RHEL , debe instalar el paquete policycoreutils y agregar las siguientes reglas requeridas por SELinux para que Nginx se enlace en el nuevo puerto .

# yum install policycoreutils
# semanage port -a -t http_port_t -p tcp 3200
# semanage port -m -t http_port_t -p tcp 3200

Finalmente reinicie el servidor HTTP de Nginx para aplicar los cambios.

# systemctl restart nginx.service 

Compruebe las mesas de red escuchando sockets.

# netstat -tlpn| grep nginx
# ss -tlpn| grep nginx

Para verificar si se puede acceder al servidor web desde las computadoras de su red, abra un navegador y navegue hasta la dirección IP de su servidor o el nombre de dominio en el puerto 3200 . Debería ver la página web predeterminada de Nginx, como se ilustra en la siguiente captura de pantalla.

http://sever.ip:3200 

Sin embargo, si no puede navegar por la página web de Nginx, regrese a la consola del servidor y verifique las reglas del firewall para permitir el tráfico entrante en el puerto 3200/tcp .