{"id":1237,"date":"2026-10-06T08:00:15","date_gmt":"2026-10-06T06:00:15","guid":{"rendered":"https:\/\/www.redservicio.net\/blog\/?p=1237"},"modified":"2026-10-06T08:00:15","modified_gmt":"2026-10-06T06:00:15","slug":"desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa","status":"publish","type":"post","link":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/","title":{"rendered":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa"},"content":{"rendered":"<p>Desplegar aplicaci\u00f3n Node.js en producci\u00f3n es, probablemente, el momento en que tu proyecto deja de ser un experimento para convertirse en algo serio. Porque una cosa es que tu c\u00f3digo funcione en local con <em>node app.js<\/em>, y otra muy distinta es que aguante tr\u00e1fico real, ca\u00eddas inesperadas y reinicios del servidor. En esta gu\u00eda te contamos, paso a paso, c\u00f3mo combinar PM2 como gestor de procesos y Nginx como proxy inverso para conseguir un despliegue profesional, estable y con margen para crecer. Y si buscas un hosting con soporte 24\/7 que te acompa\u00f1e en cada etapa, en RedServicio encontrar\u00e1s servidores optimizados para Node.js y asistencia t\u00e9cnica real cuando la necesites.<\/p>\n<h2>\u00bfQu\u00e9 necesitas antes de desplegar aplicaci\u00f3n Node.js en producci\u00f3n?<\/h2>\n<p>Antes de tocar cualquier comando, conviene preparar el terreno. No es glamuroso, pero este checklist te ahorrar\u00e1 m\u00e1s de un dolor de cabeza:<\/p>\n<ul>\n<li><strong>Servidor con acceso SSH:<\/strong> una VPS o servidor dedicado con Ubuntu 20.04\/22.04 o Debian, y un usuario con privilegios sudo.<\/li>\n<li><strong>Node.js instalado:<\/strong> recomendamos usar NVM para gestionar versiones sin complicarte la vida:<\/li>\n<\/ul>\n<ol>\n<li>Descarga NVM: <em>curl -o- https:\/\/raw.githubusercontent.com\/nvm-sh\/nvm\/v0.39.7\/install.sh | bash<\/em><\/li>\n<li>Recarga tu shell: <em>source ~\/.bashrc<\/em><\/li>\n<li>Instala la versi\u00f3n LTS: <em>nvm install &#8211;lts<\/em><\/li>\n<\/ol>\n<ul>\n<li><strong>Tu aplicaci\u00f3n lista:<\/strong> con su <em>package.json<\/em> al d\u00eda, las variables de entorno definidas en un archivo <em>.env<\/em> (nunca versionado en Git, por favor) y las dependencias de producci\u00f3n bien declaradas.<\/li>\n<li><strong>Nombre de dominio apuntando al servidor:<\/strong> configura el registro A de tu dominio hacia la IP del servidor antes de meter manos a Nginx y al certificado SSL.<\/li>\n<li><strong>Firewall b\u00e1sico:<\/strong> con UFW, deja abiertos solo los puertos 22, 80 y 443: <em>sudo ufw allow OpenSSH &amp;&amp; sudo ufw allow &#8216;Nginx Full&#8217;<\/em>.<\/li>\n<\/ul>\n<p>Un consejo pr\u00e1ctico que muchos se saltan: prueba tu aplicaci\u00f3n en el servidor ejecut\u00e1ndola directamente con <em>node app.js<\/em> antes de a\u00f1adir PM2. Si arranca sin errores y responde en su puerto (el 3000, por ejemplo), ya tienes la base garantizada. Si no, mejor descubrirlo ahora.<\/p>\n<h2>Instalaci\u00f3n y configuraci\u00f3n de PM2 en tu servidor<\/h2>\n<p>PM2 es el gestor de procesos m\u00e1s popular del ecosistema Node.js, y no sin motivo: mantiene tu aplicaci\u00f3n viva tras fallos, la levanta al arrancar el servidor y facilita much\u00edsimo la gesti\u00f3n de logs. La instalaci\u00f3n es global y no tiene ciencia:<\/p>\n<p><em>npm install -g pm2<\/em><\/p>\n<p>Para arrancar tu aplicaci\u00f3n con PM2 d\u00e1ndole un nombre identificativo:<\/p>\n<p><em>pm2 start app.js &#8211;name \u00abmi-app\u00bb<\/em><\/p>\n<p>Si tu proyecto usa otro punto de entrada (server.js, dist\/index.js&#8230;), simplemente aj\u00fastalo. Para aplicaciones con framework tipo Next.js o NestJS, lo ideal es usar un archivo de configuraci\u00f3n <em>ecosystem.config.js<\/em>:<\/p>\n<div class=\"result-box\">\n<p>Consejo: en <em>ecosystem.config.js<\/em> puedes definir <strong>instances: \u00abmax\u00bb<\/strong> con <strong>exec_mode: \u00abcluster\u00bb<\/strong> para aprovechar todos los n\u00facleos de CPU de tu servidor y multiplicar el rendimiento sin cambiar una sola l\u00ednea de tu aplicaci\u00f3n.<\/p>\n<\/div>\n<p>Dos comandos imprescindibles a partir de aqu\u00ed:<\/p>\n<ul>\n<li><em>pm2 startup<\/em>: genera el script para que PM2 arranque autom\u00e1ticamente al reiniciar el servidor; ejecuta el comando que te muestra en pantalla.<\/li>\n<li><em>pm2 save<\/em>: guarda la lista actual de procesos para restaurarla en el pr\u00f3ximo arranque.<\/li>\n<\/ul>\n<p>Con esto tu aplicaci\u00f3n sobrevivir\u00e1 a reinicios y ca\u00eddas del proceso. \u00bfImprescindible en producci\u00f3n? Totalmente.<\/p>\n<h2>Configurar Nginx como proxy inverso para Node.js<\/h2>\n<p>Exponer directamente el puerto de Node.js (3000, 4000&#8230;) al p\u00fablico es una mala pr\u00e1ctica. Nginx hace de intermediario: recibe las peticiones en los puertos 80\/443, sirve los contenidos est\u00e1ticos con gran eficiencia y reenv\u00eda las din\u00e1micas a tu aplicaci\u00f3n. Crea la configuraci\u00f3n en <em>\/etc\/nginx\/sites-available\/mi-app<\/em>:<\/p>\n<div class=\"result-box\">\n<p>Contenido b\u00e1sico del bloque server: <strong>listen 80;<\/strong> con tu <strong>server_name<\/strong> (tudominio.com), y dentro de <strong>location \/<\/strong> la directiva <strong>proxy_pass http:\/\/localhost:3000;<\/strong> junto con las cabeceras <em>proxy_set_header Host $host;<\/em>, <em>proxy_set_header X-Real-IP $remote_addr;<\/em> y <em>proxy_set_header X-Forwarded-Proto $scheme;<\/em>.<\/p>\n<\/div>\n<p>Luego activa el sitio y verifica que todo est\u00e9 en orden:<\/p>\n<ol>\n<li>Crea el enlace simb\u00f3lico: <em>sudo ln -s \/etc\/nginx\/sites-available\/mi-app \/etc\/nginx\/sites-enabled\/<\/em><\/li>\n<li>Comprueba que no haya errores: <em>sudo nginx -t<\/em><\/li>\n<li>Recarga el servicio: <em>sudo systemctl reload nginx<\/em><\/li>\n<\/ol>\n<p>Un extra muy recomendable si tu aplicaci\u00f3n usa WebSockets (Socket.io, chats en tiempo real): a\u00f1ade en el bloque location las directivas <em>proxy_http_version 1.1;<\/em>, <em>proxy_set_header Upgrade $http_upgrade;<\/em> y <em>proxy_set_header Connection \u00abupgrade\u00bb;<\/em>. Sin ellas, las conexiones se cortan de forma aleatoria y acabar\u00e1s perdiendo una tarde entera buscando el problema.<\/p>\n<p>Con Nginx respondiendo en el puerto 80 y PM2 manteniendo tu proceso Node.js activo, el despliegue b\u00e1sico ya est\u00e1 operativo y accesible desde tu dominio.<\/p>\n<h2>C\u00f3mo habilitar HTTPS con Let&#8217;s Encrypt en Nginx<\/h2>\n<p>Sin HTTPS, tu aplicaci\u00f3n pierde credibilidad y posicionamiento. La v\u00eda m\u00e1s directa para conseguir un certificado gratuito y renovable es Certbot, el cliente oficial de Let&#8217;s Encrypt.<\/p>\n<p>Instala Certbot y el plugin de Nginx en el servidor. En Ubuntu\/Debian: <code>sudo apt install certbot python3-certbot-nginx<\/code>. En CentOS\/RHEL: <code>sudo yum install certbot python3-certbot-nginx<\/code>.<\/p>\n<p>Luego ejecuta Certbot con tu dominio (que ya debe apuntar al servidor y estar configurado en Nginx):<\/p>\n<div class=\"result-box\">\n<p><code>sudo certbot --nginx -d tudominio.com -d www.tudominio.com<\/code><\/p>\n<\/div>\n<p>Certbot detecta solo el bloque de servidor de tu app, pide el certificado, lo instala y ajusta la configuraci\u00f3n para redirigir todo el tr\u00e1fico HTTP hacia HTTPS. Cuando te pregunte, elige la opci\u00f3n de redirecci\u00f3n. No la dejes pasar.<\/p>\n<p>Certbot instala un temporizador de renovaci\u00f3n autom\u00e1tica, pero conviene verificar que la renovaci\u00f3n funciona en modo prueba:<\/p>\n<p><code>sudo certbot renew --dry-run<\/code><\/p>\n<p>Y un detalle que se olvida a menudo: abre el puerto 443 en el firewall (<code>sudo ufw allow 443<\/code> si usas UFW). Sin eso, el tr\u00e1fico cifrado no llega a Nginx por mucho que el certificado est\u00e9 bien instalado.<\/p>\n<h2>Comandos esenciales de PM2 para monitorizar y escalar tu app<\/h2>\n<p>Llegados a producci\u00f3n, hay un pu\u00f1ado de comandos de PM2 que vas a usar a diario en tu despliegue de aplicaci\u00f3n Node.js:<\/p>\n<ol>\n<li><strong><code>pm2 status<\/code><\/strong>: el estado de todos los procesos, con su PID, uso de CPU y memoria.<\/li>\n<li><strong><code>pm2 logs<\/code><\/strong>: logs en tiempo real. Con <code>--lines 100<\/code> ves las \u00faltimas 100 l\u00edneas; con <code>--err<\/code> filtras solo errores.<\/li>\n<li><strong><code>pm2 monit<\/code><\/strong>: un panel interactivo en terminal con m\u00e9tricas en vivo de CPU, memoria y latencia de eventos.<\/li>\n<li><strong><code>pm2 restart app<\/code><\/strong>: reinicia tras un despliegue. Y si est\u00e1s en modo cluster, mejor <code>pm2 reload app<\/code>, que reinicia sin downtime.<\/li>\n<li><strong><code>pm2 stop app<\/code><\/strong> y <strong><code>pm2 delete app<\/code><\/strong>: detienen o eliminan del todo el proceso de la lista de PM2.<\/li>\n<\/ol>\n<p>\u00bfEscalado horizontal? PM2 reparte la carga entre varios n\u00facleos del servidor:<\/p>\n<div class=\"result-box\">\n<p><code>pm2 scale app 4<\/code> lanza 4 instancias de tu aplicaci\u00f3n en modo cluster, equilibrando las peticiones autom\u00e1ticamente entre ellas.<\/p>\n<\/div>\n<p>Un consejo pr\u00e1ctico que te ahorrar\u00e1 dolores de cabeza: crea un archivo <code>ecosystem.config.js<\/code> y gestiona la configuraci\u00f3n de forma declarativa. Ah\u00ed defines el n\u00famero de instancias, las variables de entorno y los l\u00edmites de memoria (<code>max_memory_restart: \"512M\"<\/code>) que reinician la app si esta empieza a fugar memoria. Lo he visto salvar m\u00e1s de un despliegue.<\/p>\n<p>Para terminar, tras configurar todo ejecuta <code>pm2 save<\/code> y <code>pm2 startup<\/code>, de modo que PM2 restablezca tus procesos si el servidor se reinicia. Parece un detalle menor. No lo es: evita sustos may\u00fasculos tras un reinicio inesperado.<\/p>\n<h2>Conclusi\u00f3n: tu aplicaci\u00f3n Node.js lista para producci\u00f3n<\/h2>\n<p>Con Nginx de proxy inverso, HTTPS activado mediante Let&#8217;s Encrypt y PM2 gestionando procesos con monitorizaci\u00f3n, logs y autoarranque, tienes un despliegue de aplicaci\u00f3n Node.js s\u00f3lido, seguro y preparado para escalar. Es la misma arquitectura sobre la que corren miles de aplicaciones en producci\u00f3n, y dominarla te da control total sobre tu infraestructura.<\/p>\n<p>Eso s\u00ed, mantener este stack exige un servidor fiable, soporte t\u00e9cnico cuando algo falla a las 3 de la madrugada y buen rendimiento de red. En <strong>RedServicio.net<\/strong> ofrecemos hosting con servidores optimizados para Node.js y soporte 24\/7 en espa\u00f1ol, para que t\u00fa te centres en tu c\u00f3digo y nosotros en que tu aplicaci\u00f3n siga en l\u00ednea. Empieza hoy mismo tu despliegue con la tranquilidad de tener un equipo detr\u00e1s.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Desplegar aplicaci\u00f3n Node.js en producci\u00f3n es, probablemente, el momento en que tu proyecto deja de ser un experimento para convertirse [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":1239,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa<\/title>\n<meta name=\"description\" content=\"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa\" \/>\n<meta property=\"og:description\" content=\"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/\" \/>\n<meta property=\"og:site_name\" content=\"RedServicio Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-06T06:00:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Carmen Dorado\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carmen Dorado\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/\"},\"author\":{\"name\":\"Carmen Dorado\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/#\\\/schema\\\/person\\\/f01a157fcd66c5faafccf03b44eff919\"},\"headline\":\"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa\",\"datePublished\":\"2026-10-06T06:00:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/\"},\"wordCount\":1355,\"image\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1791266398_47bb88616407.jpg\",\"articleSection\":[\"Tutoriales\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/\",\"url\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/\",\"name\":\"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1791266398_47bb88616407.jpg\",\"datePublished\":\"2026-10-06T06:00:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/#\\\/schema\\\/person\\\/f01a157fcd66c5faafccf03b44eff919\"},\"description\":\"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1791266398_47bb88616407.jpg\",\"contentUrl\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/1791266398_47bb88616407.jpg\",\"width\":1536,\"height\":1024,\"caption\":\"desplegar aplicaci\u00f3n Node.js\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/\",\"name\":\"RedServicio Blog\",\"description\":\"Hosting, Dominios y Tecnolog\u00eda\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/#\\\/schema\\\/person\\\/f01a157fcd66c5faafccf03b44eff919\",\"name\":\"Carmen Dorado\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g\",\"caption\":\"Carmen Dorado\"},\"description\":\"Carmen Dorado aborda la experiencia de usuario, atencion al cliente y buenas practicas en documentacion y soporte tecnico.\",\"url\":\"https:\\\/\\\/www.redservicio.net\\\/blog\\\/author\\\/carmen-dorado\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa","description":"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/","og_locale":"es_ES","og_type":"article","og_title":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa","og_description":"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.","og_url":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/","og_site_name":"RedServicio Blog","article_published_time":"2026-10-06T06:00:15+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg","type":"image\/jpeg"}],"author":"Carmen Dorado","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Carmen Dorado","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#article","isPartOf":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/"},"author":{"name":"Carmen Dorado","@id":"https:\/\/www.redservicio.net\/blog\/#\/schema\/person\/f01a157fcd66c5faafccf03b44eff919"},"headline":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa","datePublished":"2026-10-06T06:00:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/"},"wordCount":1355,"image":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg","articleSection":["Tutoriales"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/","url":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/","name":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa","isPartOf":{"@id":"https:\/\/www.redservicio.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#primaryimage"},"image":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg","datePublished":"2026-10-06T06:00:15+00:00","author":{"@id":"https:\/\/www.redservicio.net\/blog\/#\/schema\/person\/f01a157fcd66c5faafccf03b44eff919"},"description":"Aprende a desplegar aplicaci\u00f3n Node.js con PM2 y Nginx como proxy inverso paso a paso. Sigue nuestra gu\u00eda y pon tu proyecto en producci\u00f3n hoy mismo.","breadcrumb":{"@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#primaryimage","url":"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg","contentUrl":"https:\/\/www.redservicio.net\/blog\/wp-content\/uploads\/2026\/10\/1791266398_47bb88616407.jpg","width":1536,"height":1024,"caption":"desplegar aplicaci\u00f3n Node.js"},{"@type":"BreadcrumbList","@id":"https:\/\/www.redservicio.net\/blog\/desplegar-aplicacion-nodejs-con-pm2-y-nginx-guia-completa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redservicio.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Desplegar aplicaci\u00f3n Node.js con PM2 y Nginx: gu\u00eda completa"}]},{"@type":"WebSite","@id":"https:\/\/www.redservicio.net\/blog\/#website","url":"https:\/\/www.redservicio.net\/blog\/","name":"RedServicio Blog","description":"Hosting, Dominios y Tecnolog\u00eda","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redservicio.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.redservicio.net\/blog\/#\/schema\/person\/f01a157fcd66c5faafccf03b44eff919","name":"Carmen Dorado","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/546fd569ee8d74b07022a88de8fe4a0521f80910252c3f6d4989b81023464d89?s=96&d=mm&r=g","caption":"Carmen Dorado"},"description":"Carmen Dorado aborda la experiencia de usuario, atencion al cliente y buenas practicas en documentacion y soporte tecnico.","url":"https:\/\/www.redservicio.net\/blog\/author\/carmen-dorado\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/posts\/1237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/comments?post=1237"}],"version-history":[{"count":1,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/posts\/1237\/revisions"}],"predecessor-version":[{"id":1238,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/posts\/1237\/revisions\/1238"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/media\/1239"}],"wp:attachment":[{"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/media?parent=1237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/categories?post=1237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redservicio.net\/blog\/wp-json\/wp\/v2\/tags?post=1237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}