node.js - tutorial - servidor node js con express




¿Cómo dejo el servidor Node.js en EC2 ejecutándose para siempre? (4)

Antes de invocar Node.js, ejecute el comando:

screen

Esto creará un entorno persistente que permitirá que su proceso continúe ejecutándose después de desconectarse.

Cuando se vuelve a conectar, puede usar este comando para volver a conectarse a ese entorno:

screen -r

Aquí hay un enlace aleatorio para aprender más sobre la pantalla:

http://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/

Sin embargo, esto no lo ayudará si su instancia EC2 se reinicia. Hay muchas formas diferentes de hacerlo. Agregar su comando de inicio a /etc/rc.local es una forma. Aquí hay un enlace a una guía de Amazon que incluye agregar algo a /etc/rc.local.

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/building-shared-amis.html

Espero que esto ayude,

James

Como puede ver en mi pregunta, soy nuevo en esto ...

Construí mi primer sitio web, configuré mi primer servidor Node.js para servirlo y luego lo puse todo en vivo en EC2.

Probé todo en mi dirección IP EC2 y todo parece estar funcionando.

Ahora, hasta ahora, he estado probando mi aplicación localmente, por lo que tiene sentido que cada vez que cierre el terminal, app.js dejara de funcionar para que no se sirviera nada en localhost.

Ahora que mi servidor está en EC2, sucede lo mismo ("obviamente" se podría decir ...) cada vez que cierro mi terminal.

Entonces, mi pregunta es cómo puedo mantener mi servidor Node.js ejecutándose en EC2 durante ... por siempre ... para que mi sitio permanezca activo ... por siempre :)

Leí algo sobre un módulo de nodo llamado "forever" pero me pregunto (siendo nuevo y todo ...) ¿por qué esta funcionalidad "forever" no es una configuración predeterminada del sistema Node.js-EC2?

Quiero decir, corrígeme si me equivoco, pero ¿no es el objetivo de configurar un servidor web y ponerlo en funcionamiento para que permanezca vivo para siempre? ¿No es eso lo que se supone que los servidores deben hacer de todos modos (escuchando infinitamente las solicitudes)? Y si ese es el caso, ¿por qué necesitamos módulos / configuraciones adicionales para lograrlo?

Gracias por su ayuda. Como pueden ver, no solo estoy buscando una solución, sino también una explicación porque me confundí mucho ... :-)

EDITAR (algunos detalles que podría necesitar): después de instalar mi aplicación en EC2, estos son los pasos que sigo en el terminal (por cierto, la aplicación se ejecuta en Amazon Linux ):

  • Escribo ssh -i xxxxxxxxxxx.pem [email protected] en el terminal

  • Después de iniciar sesión en la máquina Amazon, voy a la carpeta correspondiente y ejecuto el nodo app.js

  • Hay 3 carpetas en la máquina: node , node_modules y *name of my app*

  • app.js reside en *name of my app*

  • Después de eso, el sitio se activa con mi IP EC2

  • Una vez que cierro la terminal, todo está apagado



O use tmux Simplemente ingrese una pantalla tmux ejecute el servidor de nodo Ctrl + b Presione D y listo.


Trabajé con la respuesta válida durante un tiempo, pero algunas veces la pantalla simplemente termina sin razón, la pantalla no tiene un cargador de equilibrio y otras características que en un entorno de producción deberían importarle. Actualmente utilizo un componente npm para hacer este trabajo.

https://www.npmjs.com/package/pm2

Esto es muy fácil de usar.

$ npm install pm2 -g

entonces simplemente inicie su aplicación con pm2 como este

$ pm2 start app.js

En el enlace anterior puede encontrar diferentes tareas para realizar si lo necesita.

Espero que esto ayude a los novatos como yo.





webserver