Ejecutar la aplicación nodejs en el entorno de desarrollo o local donde se proporciona la interfaz GUI en el sistema operativo es una tarea fácil, pero cuando se trata de implementarla en producción en un servidor en la nube, la mayoría de los principiantes no saben cómo comenzar. Entonces, aquí está el procedimiento detallado paso a paso para configurar una aplicación nodejs simple.
1. Creando un nuevo usuario sudo
NOTA:Si ya ha creado un usuario con privilegios de superusuario, no es necesario que siga este paso.
En realidad, puedes trabajar directamente con root
usuario, pero luego algunos comandos peligrosos mal escritos por usted en la terminal causarán daño al servidor. Así que mejor ve con sudo
acceda y para crearlo primero inicie sesión con root
privilegios de usuario:
$ ssh [email protected]_server_ip
Y luego complételo dando la contraseña y la autenticidad del host.
Ahora crea un nuevo usuario con sudo
acceso:
$ adduser sonu
$ usermod -aG sudo sonu
El primer comando crea un nuevo usuario después de hacer algunas preguntas y el segundo comando agrega ese usuario a sudo
grupo (grupo de superusuario).
Ahora cierre sesión en el servidor (utilice exit
comando) e inicie sesión con este nuevo usuario.
$ ssh [email protected]_ip
2. Instale nginx y node.js
Primero actualice el apt
repositorio con este comando:
$ sudo apt update
Ahora instala nginx usando
$ sudo apt install nginx
Y luego nodejs
con
$ curl -sL https://deb.nodesource.com/setup_6.x | bash
$ sudo apt install -y nodejs
También puede consultar las [instrucciones de instalación] oficiales de nodesource (https://github.com/nodesource/distributions#installation-instructions) para obtener la última versión de node.js.
3. Iniciar una aplicación nodejs (express) simple
Crearemos una aplicación expressjs simple usando express-generator
. Así que primero instala express-generator
globalmente usando lo siguiente:
$ sudo npm i express-generator -g
Después de eso, cree la aplicación express en el directorio de inicio
$ cd ~
$ express testapp
Ahora inicia la aplicación usando:
$ cd testapp
$ npm install & npm start
Su aplicación comenzará en http://localhost:8080
puerto.
4. Instale pm2 para ejecutarlo para siempre
Simplemente haz npm start
no reiniciará la aplicación si la aplicación se cae en caso de falla del servidor o algo así. Entonces, para mantenerlo en funcionamiento cada vez que se reinicia el sistema, usamos pm2
aplicación nodejs. Instálelo globalmente escribiendo sudo npm i pm2 -g
y ejecute la aplicación para siempre usando el siguiente comando.
$ cd testapp/bin
$ pm2 start www
5. Asignación de 8080 al puerto http predeterminado.
Ahora el paso final es usar nginx para mapear 8080
puerto predeterminado 80
puerto http Lo llamamos servidor proxy inverso.
Abra el bloque de servidor predeterminado de nginx y elimine todo de ese archivo.
$ sudo nano /etc/nginx/sites-available/default
Pegue el siguiente código en este archivo y guárdelo:
server {
listen 80;
server_name "";
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Finalmente pruebe la configuración y vuelva a cargar el nginx:
$ sudo nginx -t
$ sudo nginx -s reload
## or restart the nginx
$ sudo service nginx restart
El paso adicional es deshabilitar el puerto 8080
a través de ubuntu ufw
cortafuegos Habilitarlo bloqueará todos los puertos. Permita algunos puertos comunes a través de Nginx Full
configuración.
$ sudo ufw enable
$ sudo ufw allow 'Nginx Full'