GNU/Linux >> Tutoriales Linux >  >> Linux

Mejores prácticas al ejecutar Node.js con el puerto 80 (Ubuntu / Linode)

Dar permiso de usuario seguro para usar el puerto 80

Recuerde, NO queremos ejecutar sus aplicaciones como usuario raíz, pero hay un problema:su usuario seguro no tiene permiso para usar el puerto HTTP predeterminado (80). Su objetivo es poder publicar un sitio web que los visitantes puedan usar navegando a una URL fácil de usar como http://ip:port/

Desafortunadamente, a menos que inicie sesión como root, normalmente tendrá que usar una URL como http://ip:port - donde número de puerto> 1024.

Mucha gente se queda atrapada aquí, pero la solución es fácil. Hay algunas opciones, pero esta es la que me gusta. Escribe los siguientes comandos:

sudo apt-get install libcap2-bin
sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``

Ahora, cuando le diga a una aplicación Node que desea que se ejecute en el puerto 80, no se quejará.

Consulta este enlace de referencia


Puerto 80

Lo que hago en mis instancias en la nube es redirigir el puerto 80 al puerto 3000 con este comando:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

Luego lanzo mi Node.js en el puerto 3000. Las solicitudes al puerto 80 se asignarán al puerto 3000.

También debe editar su /etc/rc.local archivo y agregue esa línea menos el sudo . Eso agregará la redirección cuando la máquina arranque. No necesitas sudo en /etc/rc.local porque los comandos allí se ejecutan como root cuando el sistema arranca.

Registros

Use el módulo forever para iniciar su Node.js. Se asegurará de que se reinicie si alguna vez falla y redirigirá los registros de la consola a un archivo.

Iniciar en el arranque

Agregue su secuencia de comandos de inicio de Node.js al archivo que editó para la redirección de puertos, /etc/rc.local . Eso ejecutará su secuencia de comandos de lanzamiento de Node.js cuando se inicie el sistema.

Océano digital y otros VPS

Esto no solo se aplica a Linode, sino también a Digital Ocean, AWS EC2 y otros proveedores de VPS. Sin embargo, en los sistemas basados ​​en RedHat /etc/rc.local es /ect/rc.d/local .


Linux
  1. Cómo administrar versiones de NodeJS con n en Ubuntu 20.04

  2. Instalar Vsftpd con SSL/TLS en Ubuntu 20.04:¿el mejor procedimiento?

  3. 8 mejores prácticas con sudo en Linux:qué hacer y qué no hacer con sudo

  4. Cómo instalar NodeJs en Ubuntu 18.04

  5. Cómo instalar Node.js con NVM y Nginx en Ubuntu 22.04

¿Configurar un puerto serie con Virtualbox en Ubuntu (sistema operativo invitado:Windows Xp)?

Configuración del servidor Ubuntu:mejores prácticas de seguridad

Instalar WordPress con Nginx en Ubuntu 18.04

Cómo instalar Node.js en Ubuntu 14.04

¿Cómo cambiar el puerto SSH en Ubuntu?

5 prácticas recomendadas de seguridad SSH de Linux para proteger sus sistemas