Saltar al contenido

Ejecute node.js en el servidor de alojamiento cpanel

Este team de especialistas luego de ciertos días de investigación y recopilar de información, dieron con la respuesta, deseamos que resulte útil para ti en tu plan.

Solución:

Instalar/Configurar NodeJS con CPanel

1. Inicie sesión en su cuenta usando SSH (no está habilitado para el equipo de soporte de contacto de su cuenta).

2. Descarga el NodeJS

wget https://nodejs.org/dist/latest/node-v10.0.0-linux-arm64.tar.xz

3. Extraiga los archivos de NodeJS

tar xvf node-v10.0.0-linux-arm64.tar.xz

4. Ahora cambie el nombre de la carpeta a nombre de nodejs, para hacer esto escriba el siguiente comando

mv nodo-v10.0.0-linux nodejs

5. Ahora instale los binarios de nodo y npm, escriba los siguientes comandos:

mkdir~/bin
cp nodejs/bin/nodo ~/bin
cd ~/papelera
ln -s ../nodejs/lib/node_modules/npm/bin/npm-cli.js npm

6. Node.js y npm están instalados en su cuenta. Para verificar, escriba los siguientes comandos

nodo –versión
npm –versión

The ~/bin directory is in your path by default, which means you can run node and npm from any directory in your account.

7. Inicie la aplicación Node.js

nodo nohup my_app.js &

8. Detener la aplicación

nodo pkill

9. Integrando una aplicación Node.js con el servidor web (opcional)

Según el tipo de aplicación Node.js que esté ejecutando, es posible que desee poder acceder a ella mediante un navegador web. Para hacer esto, debe seleccionar un puerto no utilizado para que la aplicación Node.js escuche y luego definir las reglas de reescritura del servidor que redirigen a los visitantes a la aplicación.

En un editor de texto, agregue las siguientes líneas al archivo .htaccess en el directorio /home/username/public_html, donde nombre de usuario representa el nombre de usuario de su cuenta:

RewriteEngine On
RewriteRule ^$ http://127.0.0.1:XXXXX/ [P,L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ http://127.0.0.1:XXXXX/$1 [P,L]

En ambas líneas de RewriteRule, reemplace XXXXX con el puerto en el que escucha su aplicación Node.js. Para ejecutar una aplicación de Node.js en un servidor administrado, debe seleccionar un puerto no utilizado y el número de puerto debe estar entre 49152 y 65535 (inclusive). Guarde los cambios en el archivo .htaccess y luego salga del editor de texto. Los visitantes de su sitio web son redirigidos a la aplicación Node.js que escucha en el puerto especificado.

Si su aplicación no se inicia, es posible que el puerto que eligió ya esté en uso. Verifique el registro de la aplicación en busca de códigos de error como EADDRINUSE que indiquen que el puerto está en uso. Si es así, seleccione un número de puerto diferente, actualice la configuración de su aplicación y el archivo .htaccess y vuelva a intentarlo.

cPanel generalmente ejecuta Apache u otro servidor web que se comparte entre todas las cuentas de cPanel/unix. El servidor web escucha en el puerto 80. Dependiendo del nombre de dominio en la URL solicitada, el servidor web usa “Alojamiento virtual” para averiguar qué cuenta de cPanel/unix debe procesar la solicitud, es decir, en qué directorio principal encontrar los archivos para servir y scripts para ejecutar. Si la URL solo contiene una dirección IP, cPanel tiene que usar de forma predeterminada una de las cuentas de cPanel.

Normalmente, sin acceso a la raíz, un trabajo ejecutado por una cuenta de cPanel no puede escuchar en el puerto 80. De hecho, los puertos disponibles pueden ser bastante restrictivos. Si 8080 no funciona, puede probar 60000. Para acceder a un servidor node.js en ejecución, deberá tener el número de puerto en el que está escuchando. Dado que ese es el único trabajo que escucha en ese puerto en ese servidor, debería poder apuntar su navegador al nombre de dominio de cualquiera de las cuentas de cPanel o incluso la dirección IP del servidor, agregando el número de puerto a la URL. Pero, es típico usar el nombre de dominio para la cuenta de cPanel que ejecuta el trabajo de node.js, por ejemplo, http://cPanelDomainName.com:60000/ .

Por supuesto, el puerto 80 es el predeterminado para los servicios web y relativamente pocos usuarios están familiarizados con los números de puerto opcionales en las URL. Para facilitar las cosas a los usuarios, puede usar Apache para “revertir las solicitudes de proxy” en el puerto 80 al puerto en el que escucha el proceso node.js. Esto se puede hacer usando la directiva RewriteRule de Apache en un archivo de configuración o .htaccess. Podría decirse que este proxy inverso de solicitudes también tiene otros beneficios, por ejemplo, Apache puede ser un front-end más seguro, confiable y manejable para enfrentar la Internet pública.

Desafortunadamente, esta configuración para node.js no está respaldada por todas las empresas de alojamiento web. Una empresa de hospedaje que lo respalda, incluso en sus ofertas económicas de hospedaje compartido, es A2Hosting.com. También tienen una descripción claramente escrita del proceso de configuración en su Base de conocimientos.

Finalmente, vale la pena señalar que los desarrolladores de cPanel están trabajando en la compatibilidad integrada con node.js. “Si todas las estrellas se alinean, podríamos ver esta tierra tan pronto como la versión 68”, es decir, quizás a principios de 2018.

Referencias

Alojamiento virtual de Apache – http://httpd.apache.org/docs/2.4/vhosts/

Directiva Apache RewriteRule – http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

Artículo de la base de conocimientos de A2Hosting.com sobre la configuración de Node.js: https://www.a2hosting.com/kb/installable-applications/manual-installations/installing-node-js-on-managed-hosting-accounts

Subproceso de solicitud de funciones de cPanel para compatibilidad con node.js: https://features.cpanel.net/topic/nodejs-hosting

Preguntas relacionadas con StackOverflow

Cómo alojar una aplicación Node.Js en hosting compartido

¿Por qué node.js no puede ejecutarse en alojamiento compartido?

Puede usar cualquier dominio que apunte a ese servidor cPanel y, en lugar de acceder a http://server-ip:8080, intente acceder a http://domain.tld:8080. Por defecto, cPanel no se vincula en el puerto 8080. Asegúrese de verificar si hay algún firewall en el servidor. Si es así, permita las conexiones entrantes en el puerto tcp 8080. Dependiendo de la configuración de su servidor WHM, también debería funcionar con http://server-ip:8080

Reseñas y valoraciones

Tienes la opción de añadir valor a nuestro contenido colaborando tu veteranía en las observaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *