¡¡Uf!! Has trabajado duro y has puesto todo el esfuerzo en crear una aplicación Node.Js de ensueño para tu proyecto. Después de numerosas horas de codificación y depuración, finalmente ha llegado a un producto final. Ahora ha llegado el momento de lanzar su producto al mercado donde cualquiera pueda verlo y usarlo. ¡¡Yuppie!! Emocionado, ¿no es así? En esta guía, explicaré paso a paso el proceso de implementación de su primera aplicación Node.Js en el servidor. Entonces, ¡comencemos ahora! Empezando Bueno, al usar tecnologías basadas en la nube, puede implementar una aplicación de diferentes maneras. Si , es posible que aseguren muchos servicios como Microsoft Azure, Google Cloud o AWS para alojar su aplicación web. Además, usted y su equipo pueden usar servicios PaaS como Heroku para una implementación rápida y sencilla. contrata a desarrolladores experimentados de NodeJs Además, implementar su aplicación Node.Js en un servidor Linux simple en la nube es difícil de encontrar la configuración y la pila de tecnologías correctas que cumplan con sus expectativas. Hay muchos servidores privados virtuales: VPS que puede encontrar en diferentes plataformas confiables. Pero, aquí, vamos a utilizar Hostinger, ya que es rentable y fácil de configurar con diferentes complementos. Aquí, estoy usando la última versión de Ubuntu: 20.04. Por lo tanto, siga los pasos necesarios para implementar su aplicación Node.Js en un servidor básico. aquí, usaremos MySQL (según los requisitos de la aplicación) Configuración de DBMS: para volver a visitar las solicitudes HTTP a nuestro servidor interno de Node.Js, usaremos . Configure un proxy inverso: Nginx Instalar Nodo y NPM. Instale PM2 Node.Js Process Manager. Desde el control de versiones, presiona/clona tu código. Configure el proxy inverso y ejecute un servidor local. Siga los pasos anteriores para acceder a la IP o nombre de dominio de su servidor en el PUERTO 80 a través de su aplicación Node.Js. Además, como puerto predeterminado, el 80 se considera para servir HTTP. Ahora, debe tener un SSH en su servidor mientras usa Hostinger. Podrá ver la dirección IP del servidor en el lado derecho. Puede mantener SSH como root. ssh root@ 42.35 .40 .01 Desde Hostinger Cpanel, puedes cambiar la contraseña de SSH. Instalar base de datos MySQL Su proceso de instalación es el mismo que el de otros paquetes de Debian (Ubuntu) en todo el apt. sudo apt install mysql-server sudo apt update Cuando ejecuta el script de configuración, debe asegurarse de haber aceptado todos los permisos necesarios del servidor. Ahora configure el servidor MySQL Deamon. Brindará seguridad estricta en un entorno listo para la producción. sudo mysql_secure_installation Después de dar un comando al servidor, puede cambiar algunas de las opciones de seguridad de MySQL. Sin embargo, debe configurar el complemento Validar contraseña en la primera ventana. De esta manera, puede verificar la seguridad de su contraseña de MySQL. Para la segunda ventana, debe configurar la contraseña de usuario root de MySQL. Una vez que haya terminado con la ventana, deberá presionar Y e Intro para aceptar los valores predeterminados para todas las preguntas posteriores. Ahora, ningún usuario anónimo puede atravesarlo. Además, también deshabilitará los inicios de sesión raíz remotos, borrará la base de datos de prueba e integrará estas nuevas reglas. MySQL se adaptará a los cambios inmediatamente. No olvide verificar si el servidor MySQL se está ejecutando o no con el comando dado. systemctl status mysql Si ve un estado Activo o en ejecución, esto significa que su servidor se inició correctamente sin ningún problema. Ahora, conecte el servidor con el cliente MySQL. mysql -u root ¡Guau! Ahora, hemos configurado con éxito el servidor de la base de datos sin ningún error. mysql quit Proxy inverso Nginx Aquí, usamos el proxy inverso Nginx para recibir múltiples solicitudes de clientes y enviarlas a diferentes servidores. Usaremos el servidor Nodejs aquí. Según mi experiencia, Nginx es un servidor HTTP sorprendente y confiable. Se usa comúnmente para servir archivos HTML estáticos y proxy inverso. Proporciona acceso interno a un servidor oa aquellos recursos que están detrás de un firewall. Aquí, en nuestro caso, ejecutaremos la aplicación NodeJs en el puerto 3000 detrás de un firewall. Solo a través de localhost, podemos acceder a él. Ahora, vincule el proxy inverso de Nginx al puerto 80, disponible para el público. Luego, puede servir al servidor localhost Nodejs. Ahora es el momento de instalar Nginx. sudo apt install nginx sudo apt update Ahora, apache2 está instalado con Hostinger. Está completamente configurado para el servidor HTTP en el PUERTO 80. Por lo tanto, tenemos que deshabilitar apache2 de nuestro servidor. sudo apt-get remove apache2* Después de usar el comando, todos los paquetes y subpaquetes de apache2 no estarán disponibles. Ahora configure su servidor Nginx con una simple página web de prueba. Pero antes de continuar, debemos instalar un firewall para proteger nuestro servidor. Entonces, instalemos ufw (cortafuegos sin complicaciones). sudo apt install ufw Para acceder a su servidor en el futuro, debe asegurarse de que todas las conexiones SSH pasen solo a través del firewall. ufw allow ssh Debe escribir un código determinado para verificar qué aplicación de red está disponible y tiene acceso a través del firewall. > Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH ufw app list abre el puerto 80 (tráfico web normal y sin cifrar) y el puerto 443 (tráfico cifrado con TLS/SSL) Nginx Full: abre solo el puerto 80 Nginx HTTP: abre solo el puerto 443 Nginx HTTPS: Como necesitamos HTTP a través de ufw, permitamos Nginx. Permita Nginx HTTPS o Nginx Full. > Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6) sudo ufw allow 'Nginx HTTP' Si puede ver Permitir en el cuadro de acción de OpenSSH y Nginx HTTP, está en el camino correcto. Como podemos suponer, también es compatible con el protocolo IPV6. Con un código escrito a continuación, verifique el estado de Nginx. sudo systemctl status nginx Mantenga activo el estado de Nginx. Si no se ha iniciado automáticamente, hágalo manualmente. sudo systemctl start nginx Después de completar esto, tenemos que configurar Nginx Server Block. Desde nuestros servidores dados o múltiples dominios independientes, puede servir subdominios. /etc/nginx/ Dirección de configuración de Nginx: : /var/www/ Dirección raíz del servidor principal de Nginx Ahora, vamos a crear la dirección IP principal o la raíz de la página de servicio del dominio. sudo mkdir -p / var /www/servername.com/html Asegúrese de que el permiso de la raíz web sea correcto con el código proporcionado. sudo chmod -R 755 / var /www/servername.com Aquí, -R (recursivo) definirá todos los subdirectorios servername.com que tienen el mismo permiso que el directorio principal. Luego, escribe un código dado. Este código asignará la propiedad del directorio que tiene el usuario existente llamado variable de entorno $USER: sudo chown -R $USER:$USER / var /www/example.com/html Ahora, hagamos una página web index.html simple con fines de prueba. Luego integre el proxy del servidor Nginx a nuestro host local que ejecuta la aplicación NodeJs. nano / var /www/servername.com/html/index.html Escriba el código HTML que se indica a continuación en el interior. </html> <html> < head > < title > Welcome to servername.com! </ title > </ head > < body > < h1 > Success! The servername.com server block is working successfully! </ h1 > < b > Meow Meow! </ b > </ body > Ahora cierre el editor de texto Nano después de guardar. Además, debemos agregar la configuración en /etc/nginx/sites-disponible para que Nginx sirva este contenido. sudo nano /etc/nginx/sites-available/servername.com Debe mantener el archivo de configuración igual que su nombre de dominio para que sea fácil de mantener. Para una configuración simple de Nginx, aquí está el código. index index.html index.htm index.nginx-debian.html; location / { } } server { listen 80 ; listen [::]: 80 ; root / var /www/servername.com/html; #Here, you can put your domain name for ex: www.servername.com server_name 42.35 .40 .01 ; try_files $uri $uri/ = 404 ; solo está disponible para almacenar su configuración. Si tiene que activarlo, cree un enlace a la configuración del directorio habilitado para sitios para ver el efecto en el servidor. /etc/nginx/sites-disponible sudo ln -s /etc/nginx/sites-available/servername.com /etc/nginx/sites-enabled/ Si desea verificar los errores en la nueva configuración de agregar, ejecute el siguiente código. nginx -t Ahora, reinicie Nginx para la nueva configuración para la modificación. sudo systemctl restart nginx Ahora, intente buscar la dirección de la IP del servidor o el nombre de dominio. Podrá ver la página de prueba de la página web de muestra que se le devolvió. Entonces, el servidor Nginx se está ejecutando correctamente detrás del firewall ufw. Instalar nodo Aquí, usaremos , que puede descargar desde . En general, puede instalar Node desde el administrador de paquetes apt, pero no le permitirá instalar la última versión. NVM GitHub sudo apt install wget wget -qO-https: //raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash Considerará el script y lo ejecutará con bash para instalar NVM. install.sh Para aplicar cambios en el entorno, debe ejecutar .profile o .bashrc desde su carpeta de inicio. Y esto depende completamente de sus requisitos y configuración. source ~/.profile source ~/.bashrc Ahora ejecute el comando . Funcionará como un encanto. nvm nvm -v 0.34 Ahora instale Node y usando NVM con el siguiente código. NPM nvm install 11.0 Luego, los comandos Node y NPM estarán disponibles en la línea de comandos. node -v 11.0 Instale PM2 y Cloning Repo es un administrador de procesos de NodeJs. Realiza un seguimiento de su proceso de Nodo en ejecución para facilitar la depuración. Además, muestra los archivos de registro de las aplicaciones en ejecución. PM2 Vamos a instalarlo. npm install pm2 -g Es muy fácil de instalar, como el proceso PM2. Ahora, existe un requisito del código de la aplicación Node.Js en el servidor. Entonces, usaremos Git Version Control para enviar y luego clonar el repositorio. git push origin master git add . git commit -m "Initial Commit" git remote add origin "https://github.com/username/your_repo" Ahora clone el repositorio con el código dado. cd repos mkdir repos git clone https: //github.com/username/your_repo Suponga que el marco se basa en un servidor Node.Js o Express simple con app.js, entonces necesita usar PM2 para iniciar el proceso. cd /repos/your_repo Utilice PM2 ahora. pm2 start server app.js Aquí, usaremos la instancia de app.js con PM2. Lo llamamos "servidor" para que podamos identificar fácilmente nuestra aplicación. Una vez que haya terminado con este proceso, obtendrá una tabla que muestra las aplicaciones en ejecución/detenidas y el uso de la CPU. Configurar proxy inverso La configuración de Nginx ya está agregada con una página index.html simple. Ahora vincúlelo a una dirección localhost, que representa la dirección de la aplicación NodeJs en ejecución existente. Aquí es donde un Nginx toma su lugar para un proxy inverso. Ahora abra la configuración de y realice los cambios esenciales para que funcione como un proxy inverso. servername.com { location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; } } server listen 80 ; server_name 42.35 .40 .01 ; proxy_set_header X-NginX- Proxy true ; proxy_pass http: //localhost:3000/; proxy_redirect http: //localhost:3000/ https://$server_name/; Una vez que implemente el código anterior, todas sus preguntas de Nginx se redirigirán a . Y ese es el lugar donde encontrará el servidor NodeJs ejecutándose. http://localhost:3000 Ahora cambie el host y el puerto de su aplicación NodeJs existente. Los encabezados personalizados proporcionados se enviarán con la solicitud de proxy a nuestros servidores NodeJs: $remote_addr y $host. Estos representan la dirección IP real de aquellos usuarios que realizaron las solicitudes inicialmente. Finalmente, todo está cubierto y la configuración está completa. Puede acceder a la dirección IP o el nombre de dominio de su servidor en el navegador donde el servidor NodeJs maneja la solicitud. ¿No es genial? jaja!! De todos modos, es genial usar un proxy inverso y el puerto 3000 (puerto del servidor NodeJs). Sin embargo, esto asegura su servidor web o aplicación. ¡Golpear! Ha implementado una aplicación NodeJs en el servidor. Además, si planea desarrollar una aplicación NodeJs rica en funciones, siempre puede tener a su lado una . Eso te ayudaría a liderar el mundo con tus ideas y sus ejecuciones. empresa de desarrollo de NodeJs con experiencia