Cómo configurar una aplicación web Meteor.js con MongoDB y Apache en Ubuntu 16.04 LTS

Meteor.js es un marco JavaScript de código abierto escrito con Node.js en mente. Es popular debido a su visión de construir aplicaciones web en JavaScript puro. Meteor incorpora compatibilidad con JavaScript front-end que se ejecuta en el navegador web, así como JavaScript back-end, que se ejecutaría en el servidor host. Se integra muy bien con los marcos de JavaScript front-end, como React y Angular.js, así como con MongoDB, una popular base de datos NoSQL. Algunas razones importantes para elegir Meteor.js son las siguientes:

  • Meteor.js es un framework de pila completa. Entonces, con él, obtienes todo lo que puedas necesitar: base de datos, front-end, back-end. Meteor hace un trabajo increíble al unirlo todo.

  • Velocidad. El sistema de paquetes intuitivo de Meteor le brinda muchas herramientas que puede necesitar para perfeccionar su aplicación.

  • Cuenta con un buen apoyo del Grupo de desarrolladores de Meteor, así como de otros desarrolladores que lo usan. Podrá resolver fácilmente cualquier problema que pueda tener y resolverlo rápidamente.

En este tutorial, lograremos los siguientes objetivos en Ubuntu 16.04:

  • Instalar Node.js, nuestro tiempo de ejecución de Javascript.

  • Instalar Meteor.js.

  • Instalar MongoDB, la base de datos de Meteor de elección.

  • Instale Apache, nuestro proxy inverso de elección, y configure nuestro dominio si corresponde.

  • Prueba nuestro sitio web.

  • Configure nuestro sitio web para la producción.

Instalando Node.js

Primero deberá instalar Node.js, que es nuestro intérprete de JavaScript, y el núcleo de Meteor. Nos permitirá ejecutar Meteor y otras aplicaciones de Node.js que podamos tener en el futuro. En esta situación, instalaremos Node.js 8. Para iniciar la descarga, simplemente ejecute lo siguiente en su terminal.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Espere a que se complete la descarga y la instalación.

Instalar MongoDB

A continuación, instalaremos nuestra base de datos: MongoDB. MongoDB es una base de datos de documentos NoSQL gratuita y de código abierto, y la base de datos de Meteor de elección. Utiliza un formato similar a JSON para sus documentos, a diferencia de las tablas estructuradas en una base de datos SQL tradicional.

Importe la clave pública MongoDB utilizada por APT(Advanced Packaging Terminal). Esto permite que APT verifique el paquete; en este caso, MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Cree el archivo de lista necesario para Ubuntu 16.04.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Inicie la instalación de MongoDB y espere a que termine la instalación.

sudo apt update && sudo apt install mongodb-org -y

Abra el servicio systemd para editarlo.

sudo nano /etc/systemd/system/mongodb.service

Copie y pegue lo siguiente para completar el servicio systemd.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Use " Control-O" para guardar y " Control-X" para salir.

Ejecute el servicio systemd MongoDB escribiendo sudo systemctl start mongodbsu terminal.

Para verificar que se ha iniciado correctamente, escriba lo siguiente.

sudo systemctl status mongodb

Verá que el servicio está activo.

Instalar y configurar Apache2

A continuación, instalaremos Apache. Apache es un software de servidor web gratuito y de código abierto, que también funciona como un proxy inverso, que es lo que utilizaremos en este tutorial. Se necesita un proxy inverso para vincular nuestra aplicación Meteor.js port 80. Node.js bloquea la ejecución de aplicaciones en ese puerto sin acceso de root. Apache se ejecuta tan rootautomáticamente como se vincula port 80, por lo que no tendremos que preocuparnos por eso cuando llegue el momento de ejecutar nuestro sitio web.

Instala Apache.

sudo apt update && sudo apt install apache2

Para permitir el acceso a puertos web externos como port 80, necesitamos configurar nuestro firewall para Apache. Hacemos esto a través de UFW(Firewall sin complicaciones).

sudo ufw allow 'Apache Full'

Esto permitirá el acceso al Apache Fullperfil " ". Esto nos da el tráfico entrante port 80, que es en lo que se ejecutará nuestra aplicación.

Instalar Meteor.js y crear nuestra aplicación base

Ahora instalaremos nuestro framework web: Meteor.js. Utilizaremos un script bash simple provisto por el equipo de Meteor para instalarlo.

curl https://install.meteor.com/ | sh

Espere a que termine la instalación. Básicamente, lo que hace el script es descargar Meteor del sitio web oficial, y lo instala globalmente, para que podamos usarlo desde cualquier lugar. Una vez que haya terminado, podemos crear nuestro directorio de aplicaciones. Meteor tiene una pequeña herramienta útil para que usemos para hacer eso, llamada meteor create. Para crear su directorio de aplicaciones, escriba lo siguiente.

meteor create <projectname>

La carpeta se creará con el nombre especificado ( <projectname>).

Configurar nuestro proxy inverso Apache

Ahora que tenemos nuestro directorio de aplicaciones configurado, podemos proceder con la configuración de nuestro proxy inverso. Apache usa un módulo llamado mod_proxy, que implementa un proxy para Apache.

sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y

Esto instalará el módulo y lo pondrá a disposición de Apache.

A continuación, necesitaremos habilitar todos los módulos necesarios que Apache necesita para ejecutarse. Haremos esto con a2enmoduna herramienta que habilita módulos para Apache. Estos módulos nos permitirán aprovechar el proxy inverso. Simplemente escriba estos comandos en su terminal.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

Después de eso, tendremos que deshabilitar el inicio del sitio Apache predeterminado para que podamos iniciar el nuestro. De lo contrario, la aplicación Apache predeterminada anulará la nuestra. Para deshabilitar el sitio predeterminado, simplemente ejecute lo siguiente.

sudo a2dissite 000-default

Ahora crearemos nuestro archivo de host virtual. Para hacer eso, solo abra un editor de texto.

sudo nano /etc/apache2/sites-available/<projectname>

Copie y pegue lo siguiente.

<VirtualHost *:80>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass / http://0.0.0.0:3000/
 ServerName localhost
</VirtualHost>
  • VirtualHost *:80: Le dice a Apache que se conecte al puerto 80, que es lo que queremos para nuestra aplicación web.

  • ProxyPass: La dirección IP del sitio que desea reenviar al proxy inverso. Esta será probablemente la IP de su VPS

  • ServerName: El nombre de su servidor (el nombre predeterminado suele ser localhost).

Una vez que haya terminado de configurar los ajustes necesarios, use " Control-O" para guardar y " Control-X" para salir.

Ejecutando el sitio por primera vez

Para probar y asegurarse de que el sitio web se esté ejecutando, escriba lo siguiente en el directorio del proyecto.

meteor

Verá el siguiente resultado que muestra que su sitio se ha iniciado correctamente.

=> App running at: http://localhost:3000/

Tenga en cuenta que Meteor, de forma predeterminada, escucha port 3000.

Configurar nuestro sitio web para producción

Para asegurarnos de que nuestra aplicación pueda seguir ejecutándose, utilizaremos un servicio systemd. Similar a lo que hicimos anteriormente con MongoDB, este servicio del sistema se asegurará de que nuestro sitio web se inicie cada vez que se inicie nuestro sistema y se mantenga en funcionamiento. También reiniciará nuestra aplicación, en caso de que falle por cualquier motivo. Para configurar nuestro servicio systemd, escriba lo siguiente en su terminal.

sudo nano /etc/systemd/system/<projectname>.service

Aquí es cómo quiere que se vea su archivo.

[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1

Nota : No olvide reemplazar projectnamecon el nombre del proyecto y yourusernamecon el nombre de usuario del VPS.

Aquí hay algunas líneas clave para que tenga en cuenta.

  • WorkingDirectory: El directorio de su aplicación.

  • Restart: Si se reinicia o no la aplicación, se detiene por cualquier motivo.

  • User: Su nombre de usuario.

  • Environment=PWD: Idéntico a WorkingDirectory.

  • Environment=PORT: El puerto en el que se ejecuta su aplicación. El valor por defecto es 3000.

Guarde y cierre el archivo.

Ahora, habilitaremos e iniciaremos el servicio.

sudo systemctl enable <projectname>.service

¿Dónde <projectname>está el nombre del archivo de servicio que creamos?

Luego, comenzaremos el servicio.

sudo systemctl start <projectname>.service

Tu aplicación comenzará. Para verificar que se ha lanzado, simplemente ejecute lo siguiente.

sudo systemctl status <projectname>

Verá que está activo, verificando que el servicio se haya iniciado correctamente.

A continuación, revisaremos nuestro sitio web. En el navegador de su elección, navegue a su dirección IP.

http://your-server-ip/

Verá la pantalla de muestra Meteor, verificando que ha hecho todo correctamente.

Administrando nuestra aplicación

Ahora que hemos comenzado nuestra aplicación, tendremos que administrarla.

Reiniciando su aplicación

sudo systemctl restart <projectname>

Deteniendo la aplicación

sudo systemctl stop <projectname>

Ver el estado de la aplicación

sudo systemctl status <projectname>

Ver los registros

journalctl -u <projectname>

Ahora configuró con éxito MongoDB, Apache y Meteor, y creó un servidor web Meteor.js para producción. Ahora el resto depende de usted, diseñar su sitio web en el front-end y el back-end. Tiene acceso a MongoDB para almacenar cualquier información que pueda necesitar, y a Node.js, que ofrece una variedad de módulos disponibles a través de Node Package Manager ( NPM) para fortalecer aún más su back-end. Para obtener más documentación, no dude en visitar el sitio de Meteor , donde puede obtener más información sobre cómo personalizar su sitio web a su gusto. Además, puede consultar la documentación de MongoDB cuando trabaje con operaciones de bases de datos.



Leave a Comment

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

¿Puede la IA luchar con un número cada vez mayor de ataques de ransomware?

Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición

ReactOS: ¿Es este el futuro de Windows?

ReactOS: ¿Es este el futuro de Windows?

ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Manténgase conectado a través de la aplicación de escritorio WhatsApp 24 * 7

Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

¿Cómo puede la IA llevar la automatización de procesos al siguiente nivel?

Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

La actualización complementaria de macOS Catalina 10.15.4 está causando más problemas que resolver

Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

13 Herramientas comerciales de extracción de datos de Big Data

¿Qué es un sistema de archivos de diario y cómo funciona?

¿Qué es un sistema de archivos de diario y cómo funciona?

Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

Singularidad tecnológica: ¿un futuro lejano de la civilización humana?

A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

Una mirada a 26 técnicas analíticas de Big Data: Parte 1

El impacto de la inteligencia artificial en la atención médica 2021

El impacto de la inteligencia artificial en la atención médica 2021

La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.