Red de conocimiento informático - Material del sitio web - Cómo implementar aplicaciones Node.js en Ubuntu usando pm2 y Nginx

Cómo implementar aplicaciones Node.js en Ubuntu usando pm2 y Nginx

Ubuntu 16.04 - 64 bits

Permisos de root

Paso 1: instalar Node.js LTS

En esta guía, comenzaremos nuestro experimento desde cero. Primero, necesitamos instalar Node.js en el servidor. Usaré la versión Nodejs LTS 6.x, que se puede instalar desde el repositorio de nodesource.

Instale el paquete python-software-properties desde el repositorio de Ubuntu y agregue el repositorio Nodejs "nodesource".

sudo apt-get install -y python-software-properties

curl -sL /setup_6.x | sudo -E bash -

Instala la última versión Nodejs LTS:

sudo apt-get install -y nodejs

Una vez completada la instalación, verifique las versiones de nodo y npm.

node -v

npm -v

Paso 2: generar la aplicación de muestra Express

Usaré el paquete express-generator Genere un marco de aplicación web simple para una instalación de muestra. express-generator se puede instalar usando el comando npm.

Utilice npm para instalar express-generator:

npm install express-generator -g

-g: instala el paquete de software dentro del sistema.

Ejecutaría la aplicación como un usuario normal, no como root o superusuario. Primero necesitamos crear un nuevo usuario.

Cree un usuario llamado yume:

useradd -m -s /bin/bash yume

passwd yume

Utilice el comando su para inicie sesión con el nuevo usuario:

su - yume

A continuación, use el comando express para generar una nueva aplicación web simple:

express hakase-app< El comando /p>

creará un nuevo directorio de proyecto hakase-app.

Vaya al directorio del proyecto e instale todas las dependencias requeridas por la aplicación.

cd hakase-app

npm install

Luego prueba e inicia una nueva aplicación simple con el siguiente comando:

DEBUG =myapp :* npm start

De forma predeterminada, nuestra aplicación express se ejecutará en el puerto 3000. Ahora acceda a la dirección IP del servidor: 192.168.33.10:3000:

Este sencillo marco de aplicación web ahora se ejecuta en el puerto 3000 como usuario 'yume'.

Paso 3: instalar pm2

pm2 es un paquete de software de nodo que se puede instalar usando el comando npm. (Utilice privilegios de root, si todavía está conectado como usuario yume, ejecute el comando exit para volver a ser root):

npm install pm2 -g

Ahora podemos configurar el configuración para nuestra aplicación web Utilice pm2.

Ingresa al directorio de la aplicación hakase-app:

su - yume

cd ~/hakase-app/

Aquí puedes ver Un archivo llamado package.json, use el comando cat para mostrar su contenido.

cat package.json

Puedes ver que la línea de inicio tiene un comando nodejs para iniciar la aplicación express. Usaremos este comando con el administrador de procesos pm2.

Utilice el comando pm2 para ejecutar la aplicación express así:

pm2 start ./bin/www

Ahora puede ver el resultado así:

Nuestra aplicación express se ejecuta en pm2, con el nombre www y id 0. Puede utilizar la opción show show nodeid|name para obtener más información sobre las aplicaciones que se ejecutan en pm2.

pm2 show www

Si desea ver los registros de nuestra aplicación, puede utilizar la opción de registros. Incluye registros de acceso y errores, y también puede ver el estado HTTP de su aplicación.

pm2 logs www

Puedes ver nuestro programa en ejecución. Ahora, hagamos que se inicie automáticamente al arrancar.

sistema de inicio pm2

systemd: Ubuntu 16 usa systemd.

Verás un mensaje para ejecutar el comando como usuario root. Utilice el comando de salida para volver a la raíz y ejecutar el comando.

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 inicio systemd -u yume --hp /home/yume

it Se genera un archivo de configuración systemd para la aplicación de inicio. Cuando reinicie el servidor, la aplicación se ejecutará automáticamente.

Paso 4: Instalar y configurar Nginx como proxy inverso

En esta guía, usaremos Nginx como proxy inverso para aplicaciones de nodo. Nginx está disponible en el repositorio de Ubuntu. Utilice el comando apt para instalarlo:

sudo apt-get install -y nginx

El siguiente paso, vaya al directorio de sitios disponibles y cree. un nuevo documento de configuración de host virtual.

cd /etc/nginx/sites-available/

vim hakase-app

Pegue la siguiente configuración:

upstream hakase- aplicación {

# Aplicación Nodejs upstream

servidor 127.0.0.1:3000;

keepalive 64;

}

# Servidor en el puerto 80

servidor {

escucha 80;

nombre_servidor hakase-node.co;

raíz /home /yume/hakase-app;

ubicación / {

# configuración de Proxy_pass

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_set_header X-NginX-Proxy true;

proxy_http_version 1.1;

proxy_set_header Actualizar $http_upgrade;

proxy_set_header Conexión "actualización";

proxy_max_temp_file_size 0;

proxy_pass http://hakase-app/;

proxy_redirect desactivado;

proxy_read_timeout 240s;

}

}

Guarde el archivo y salga de vim.

En la configuración:

La aplicación del nodo se ejecuta utilizando el nombre de dominio hakase-node.co.

Todo el tráfico de nginx se reenviará a la aplicación del nodo que se ejecuta en el puerto 3000.

Pruebe la configuración de Nginx para asegurarse de que no haya errores.

nginx -t

Habilite Nginx y haga que se inicie automáticamente en el arranque.

systemctl start nginx

systemctl enable nginx

Paso 5 - Prueba

Abra su navegador web y acceda al nombre de dominio (I is ): http://hakase-app.co.

Puedes ver que la aplicación express se está ejecutando en el servidor web Nginx.

El siguiente paso, reinicia tu servidor para asegurarte de que tu aplicación de nodo pueda iniciarse automáticamente en el arranque:

pm2 save

sudo reboot

Si vuelve a iniciar sesión en su servidor, verifique el proceso de la aplicación del nodo. Ejecute el siguiente comando como usuario yume.

su - yume

estado pm2 www