Bup bip bop… iniciando secuencia 42…
¡Llegaron los robots! Han tomado el control y tradujeron esta página a tu idioma local. Sus corazoncitos de metal solo tienen las mejores intenciones. ¡Quieren ayudar! Dinos si están haciendo un buen trabajo con los botones al final de la página. Ve a la versión en inglés

Configurar la aplicación de Node.js para producción - Debian

Node.js es un entorno de tiempo de ejecución de JavaScript de código abierto, multiplataforma para desarrollar una gran variedad de herramientas y aplicaciones. Node.js se ejecuta en la mayoría de los sistemas operativos, incluidos Linux, OSX y Windows. Esta guía le enseñará cómo ejecutar Node.js como un servicio, por lo que sus aplicaciones se reiniciará automáticamente cuando se reinicia el servidor o si se produce un error.

Requisitos:

El servidor de aplicaciones ejecutará aplicaciones Node.js administradas por PM2, mientras que el servidor web ofrece a los usuarios acceso a la aplicación a través de un proxy inverso de NGINX para el servidor de aplicaciones.

Esta guía utiliza dos servidores de Debian. Nos referiremos a estos servidores por los siguientes nombres:

  • Aplicación: El servidor donde se instalará la aplicación Node.js, Node.js en tiempo de ejecución y PM2.
  • Web: Esto es donde se instalará el servidor de web NGINX, que actuará como un proxy inverso para su aplicación. Los usuarios utilizarán la dirección IP pública de servidores de web para llegar a la aplicación de Node.js.

Instalar Node.js

En esta sección se ha completado en su Aplicación servidor de.

  1. Actualizar los paquetes aptos:
    sudo apt-get update
  2. Instalar git.
    sudo apt-get install git
  3. Copiar el vínculo de descarga para Node.js desde el Página de descargas de Node.js. Encontrar los binarios de Linux de 64 bits (. tar.xz) enlace de descarga. Haga clic en el vínculo y cópiela en el Portapapeles.
  4. Cambie a su directorio principal.
    cd ~
  5. Escriba wget y pegue el vínculo de descarga en lugar de la dirección URL resaltado siguiente:
    wget https://nodejs.org/dist/v6.9.1/node-v6.9.1-linux-x64.tar.xz
  6. Cree un directorio para Node.js.
    mkdir node
  7. Extraiga el archivo descargado en el directorio de nodo:
    tar xvf node-v*.tar.xz --strip-components=1 -C ./node
  8. Cree una carpeta etcetera en nuestra carpeta de nodo.
    mkdir node/etc
  9. Configurar el prefijo global de NGP. NPM creará vínculos simbólicos a instalados paquetes de Node.js, la ruta de acceso predeterminada. Establece la ruta de acceso en/usr/local:
    echo 'prefix=/usr/local' > node/etc/npmrc
  10. Mueva el npm y ubicación de la instalación de archivos binarios de Node.js a nuestro /opt/node:
    sudo mv node /opt/
  11. Que el propietario del archivo de raíz:
    sudo chown -R root: /opt/node
  12. Crear vínculos simbólicos de los binarios de Node.js y MNP en su ruta de acceso predeterminada:
    sudo ln -s /opt/node/bin/node /usr/local/bin/node
    sudo ln -s /opt/node/bin/npm /usr/local/bin/npm
  13. Guarde y cierre el archivo.
  14. Puede comprobar si Node.js está instalado comprobando su versión:
    node -v

Si se muestra la versión, en tiempo de ejecución de Node.js ya está instalado y listo para ejecutar una aplicación.

Crear una aplicación de Node.js

Crearemos una aplicación sencilla que devuelve "Hello World" para las solicitudes HTTP entrantes. Esto es simplemente una aplicación de ejemplo que se va a ayudarle a obtener su Node.js configurado. Puede reemplazar con su propia aplicación, necesitará asegurarse de que se modifique la aplicación para escuchar en las direcciones IP y puertos correctos.

Utilizaremos la interfaz de red pública de nuestro servidor de la aplicación para que las solicitudes de aplicación de Node.js provienen de nuestro servidor de web proxy inverso.

  1. Buscar la dirección IP pública del servidor de su aplicación. Dirección IP pública del servidor de su aplicación puede encontrarse en Servidores de la nube en el IP Y DNS ficha. Buscar IP de su servidor.
  2. Crear y editar la aplicación Node.js. Se va a editar una aplicación de ejemplo denominada Hello.js. Vamos a usar vim como nuestro editor:
    cd ~
    vim hello.js
  3. Inserte el código siguiente en la está el archivo hello.js. Asegúrese de que reemplace dirección de IP pública del servidor de la aplicación de elementos de APP_SERVER_PRIVATE_IP:8081 resaltado. También debe reemplazar el puerto realzado, 8081, en ambas ubicaciones si utiliza puertos diferentes, pero asegúrese de utilizar un puerto que no sea administrador como 1024 o superior:
    var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
    }).listen(8080, 'APP_PUBLIC_IP_ADDRESS');
    console.log('Server running at http://APP_PUBLIC_IP_ADDRESS:8080/');
  4. Guardar y salir.
  5. Esta aplicación Node.js se escuchan en el puerto especificado y direcciones IP y devolver "Hello World" con un código de éxito HTTP 200.

    Probar la aplicación (opcional)

  6. Para probar la aplicación, ejecute este comando en el servidor de la aplicación:
    node hello.js
  7. Nota: Node.js de la ejecución de esta manera se bloqueará comandos adicionales hasta que se termina la aplicación presionando CTRL+C.

  8. Probar la aplicación abriendo http://YOUR_APP_SERVER_IP:8081, en una ventana del explorador, utilizando su propia IP pública.
  9. Si recibe el resultado "Hello World", la aplicación está funcionando correctamente.
  10. Si recibe un resultado incorrecto, asegúrese de que la aplicación de Node.js es también está configurado para escuchar en el puerto y la dirección IP correcta y ejecución.
  11. Eliminar la aplicación presionando CTRL + C en el servidor de la aplicación.

    Establecer la aplicación de Node.js para utilizar la dirección IP privada.

    Ahora que hemos confirmado que nuestra aplicación funciona correctamente, es necesario cambiar nuestras hello.js IPs de IP pública del servidor de la aplicación para IP privada del servidor de la aplicación. Dirección de IP privada del servidor de la aplicación puede encontrarse en Servidores de la nube en el IP Y DNS ficha. Buscar la dirección IP privada de un servidor.

  12. Vaya a su directorio y vuelva a abrir el archivo hello.js con vim.
    cd ~
    vim hello.js
  13. Reemplace dirección de IP pública del servidor de la aplicación de ambos elementos de APP_SERVER_PRIVATE_IP:8081 resaltado de por dirección de IP privada del servidor de la aplicación.
    var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
    }).listen(8081, 'APP_SERVER_PRIVATE_IP');
    console.log('Server running at http://APP_SERVER_PRIVATE_IP_ADDRESS:8081/');




  14. Guardar y salir.

Instalar PM2

Utilizaremos PM2 para administrar aplicaciones Node.js. PM2 facilita automatizar y administrar las aplicaciones ejecutando como un servicio.

  1. Utilizar módulos de empaquetado Node.js (NPM) para instalar PM2 en nuestro servidor de aplicaciones. NPM es un administrador de paquete para instalar módulos de Node.js.
    sudo npm install pm2 -g
  2. Administrar aplicación de PM2

  3. Iniciar la aplicación con PM2 para que se ejecute en segundo plano:
    pm2 start hello.js

    La aplicación se agregará a la lista de procesos del PM2, que se mostrará cada vez que inicie una aplicación:

    Éste es un resultado de ejemplo:


    Como habrá notado, PM2 asigna automáticamente un nombre de aplicación que se basa en el nombre de archivo y el identificador de PM2. PM2 también mantiene información como el PID del proceso, uso de la memoria y el estado actual.

    Si una aplicación que se ejecuta bajo PM2 bloqueos o muere, que se reinicie automáticamente. Sin embargo, pasos adicionales son necesarios para que la aplicación se inicie en el inicio del sistema (inicio o reinicio). Afortunadamente, PM2 es fácil con el subcomando de inicio.

    El subcomando inicio crea y configura una secuencia de comandos de inicio que inicia PM2 y sus procesos administrados cuando se inicia el servidor. También es importante especificar el sistema init que se está ejecutando. Ya que estamos en un servidor Debian, es systemd.

  4. Inicio de ejecución Pm2.
    sudo pm2 startup systemd
  5. Debería ver el resultado como el siguiente, que indica que se ha instalado el servicio de pm2.

    Output:

    [PM2] Generating system init script in /etc/systemd/system/pm2.service
    [PM2] Making script booting at startup...
    [PM2] -systemd- Using the command:
    su root -c "pm2 dump & pm2 kill" & su root -c "systemctl daemon-reload & systemctl enable pm2 & systemctl start pm2"
    [PM2] Dumping processes
    [PM2] Stopping PM2...
    [PM2] All processes have been stopped and deleted
    [PM2] PM2 stopped
    [PM2] Done.

    Las aplicaciones administradas pm2 ahora deberían iniciarse automáticamente en el inicio del servidor.

Otro uso de PM2 (opcional)

PM2 proporciona bastantes subcomandos que permiten buscar o administrar la información acerca de las aplicaciones. Si ejecuta PM2 sin argumentos, mostrará una página de ayuda. La página de Ayuda proporciona ejemplos de uso que cubre el uso de PM2 en mayor detalle si es necesario.

  • Si desea detener una aplicación, puede utilizar el siguiente comando de detención. Asegúrese de especificar el nombre de identificador de PM2 o App.
    $ pm2 stop App or ID
  • Para reiniciar una aplicación, utilice el siguiente comando. No olvide indicar el identificador o el nombre de la aplicación
    pm2 restart App or ID
  • Puede enumerar las aplicaciones administradas actualmente por PM2 con este comando:
    $ pm2 list
  • Utilizando el subcomando info, puede encontrar más información acerca de una aplicación específica. Asegúrese de que especificar el nombre de la aplicación en lugar de la parte resaltada o PM2 id:
    pm2 info App or ID
  • Puede extraer el Monitor de proceso PM2 mediante el subcomando de monit. Esto le mostrará métricas como el uso de la memoria, estado de aplicación y de uso de CPU:
    sudo apt-get update pm2 monit

Configurar el servidor Proxy inverso con NGINX

Ahora que hemos establecido que la aplicación de Node.js se ejecutan y atienden en la dirección privada, necesitamos una manera para los usuarios tener acceso a él en el web. Para ello, configuraremos un servidor de web NGINX como proxy inverso, que permitirá el acceso para nuestros usuarios. En esta sección se realizará en el Web servidor de.

  1. Los paquetes de actualización:
  2. sudo apt-get update
  3. Instalar NGINX:
    sudo apt-get install nginx
  4. Abra el archivo de configuración de bloque de servidor NGINX:
    sudo vi /etc/nginx/sites-available/default
  5. Agregue la dirección del servidor IP privada para el APP_SERVER_PRIVATE_IP parte. Además, cambie el puerto está establecido (8081) si configura la aplicación para escuchar en un puerto diferente. Busque la línea donde / se define a partir de bloque de servidor predeterminado. Debe ser algo parecido a esto:
  6. Bloque de ubicación de NGINX antes de editar:
    location / {
    }

  7. Bloque de ubicación NGINX después de la edición:
    location / {
    proxy_pass http://APP_SERVER_PRIVATE_IP:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    }
  8. Esta configuración permite que el servidor Web responder a solicitudes en su raíz. Mientras el servidor está disponible en example.com, el acceso a http://example.com/ a través de un explorador web enviar las solicitudes a la dirección de IP pública del servidor de aplicaciones en el puerto 8081. Una vez recibida esta solicitud, Node.js responderá a la solicitud.

  • Reinicie NGINX en el servidor Web:
    sudo service nginx restart

    Siempre y cuando sus aplicaciones y configuraciones de NGINX son correctas y se ejecuta la aplicación Node.js, debe tener acceso a la aplicación a través del proxy inverso del servidor web. Puede probarlo accediendo a la dirección URL del servidor web. Esto será su IP pública u o nombre de dominio si un nombre de dominio ha sido configurado.

    Si ve el Hola mundo mensaje en el explorador, la instalación y configuración tuvieron éxito.

    Conclusión

    Ahora se ejecuta la aplicación de Node.js detrás de un proxy inverso de NGINX en los servidores de Debian. Mediante este método de proxy inverso, tiene la flexibilidad necesaria para proporcionar a los usuarios con acceso a otras aplicaciones o incluso estático contenido de web.

    Paso siguiente

    Más info


  • ¿Este artículo fue útil?
    Gracias por tus comentarios
    ¡Nos complace haber ayudado! ¿Hay algo más que podamos hacer por ti?
    Lo sentimos. ¿Cómo podríamos ser de más utilidad?