Cómo cambiar el puerto Nginx en Linux


Nginx es un servidor estable de código abierto que impulsa algunos de los sitios web de mayor tráfico en Internet en la actualidad. 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 HTTP de Nginx escucha la conexión entrante y se enlaza en el 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 conexiones seguras en el puerto 443.

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

En los sistemas basados en Ubuntu y Debian, necesitamos modificar el archivo/etc/nginx/sites-enabled/default y en las distribuciones basadas en RHEL y CentOS editar el archivo /etc/nginx/nginx.conf.

Para empezar, 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 siguiente extracto.

# 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 instrucció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 de Nginx, debe reiniciar el servidor web para enlazar el nuevo puerto en las distribuciones de Linux basadas en Debian. Verifique la tabla de sockets de la red local con el comando netstat o ss. El puerto 3200 debe aparecer en la tabla de la red local de su 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 vincule 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 Nginx para aplicar los cambios.

# systemctl restart nginx.service 

Compruebe los enchufes de escucha de las tablas de red.

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

Para comprobar 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 captura de pantalla siguiente.

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.