Estoy configurando mi primer Node.js
servidor en cloud Linux node
ay soy bastante nuevo en los detalles de Linux admin
. (Por cierto, no estoy tratando de usar Apache al mismo tiempo).
Todo está instalado correctamente, pero descubrí que a menos que use el root login
, no puedo escuchar port 80
con el nodo. Sin embargo, preferiría no ejecutarlo como root por razones de seguridad.
¿Cuál es la mejor práctica para:
- ¿Establecer buenos permisos / usuario para el nodo para que sea seguro / sandboxed?
- Permita que el puerto 80 se use dentro de estas restricciones.
- Inicie el nodo y ejecútelo automáticamente.
- Manejar la información de registro enviada a la consola.
- Cualquier otro problema general de mantenimiento y seguridad.
¿Debo reenviar el tráfico del puerto 80 a un puerto de escucha diferente?
Gracias
fuente
/etc/rc.local
, ¿no se ejecutará comoroot
en el arranque del sistema? Eso anularía el propósito de la redirección del puerto 80.Dar permiso de usuario seguro para usar el puerto 80
Recuerde, NO queremos ejecutar sus aplicaciones como usuario root, 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 el número de puerto> 1024.Muchas personas se quedan atrapadas aquí, pero la solución es fácil. Hay algunas opciones, pero esta es la que más me gusta. Escriba los siguientes comandos:
Ahora, cuando le dice a una aplicación Node que desea que se ejecute en el puerto 80, no se quejará.
Revise este enlace de referencia
fuente
Descarte los privilegios de root después de vincularse al puerto 80 (o 443).
Esto permite que el puerto 80/443 permanezca protegido, al tiempo que le impide servir solicitudes como root:
Un ejemplo de trabajo completo con la función anterior:
Ver más detalles en esta referencia completa .
fuente
Para el puerto 80 (que era la pregunta original), Daniel tiene toda la razón. Recientemente me mudé
https
y tuve que cambiarmeiptables
a un proxy nginx ligero que administra los certificados SSL. He encontrado una utilidad respuesta junto con un GIST por gabrielhpugliese sobre cómo manejar eso. Básicamente yoCreó una solicitud de firma de certificado SSL (CSR) a través de OpenSSL
Se ha cambiado el
location
en/etc/nginx/conf.d/example_ssl.conf
aFormateé el certificado para nginx
cat
uniendo los certificados individuales y vinculándolos en miexample_ssl.conf
archivo nginx (y cosas sin comentar, me deshice de 'ejemplo' en el nombre, ...)Esperemos que eso pueda salvar a alguien más de algunos dolores de cabeza. Estoy seguro de que hay una forma de nodos de hacer esto, pero nginx fue rápido y funcionó.
fuente