Configurar Bot en una instancia de AWS

Edwindolorez
2 min readMar 7, 2023

Aprenderemos a configurar un bot en una instancia de aws, que esta hecho en node js express.

Entramos a la carpeta /var/www

Clonamos el repositorio

$ git clone git@gitlab.com:yourusername/your-repo.git botcsdev

Una vez clonado el repositorio, vamos a instalar el un demon para levantar el server express en el puerto 3000

$ npm install -g pm2

Entramos a la carpeta /etc/apache2/sites-available

$ cd /etc/apache2/sites-available

Creamos el archivo de configuración de nuestro dominio o subdominio

$ sudo cp 000-default.conf yourdomain.com.conf

Ahora editaremos el archivo yourdomain.com.conf que recién creamos

$ sudo nano yourdomain.com.conf

Agreagamos los parametros donde vive nuestra aplicacion

<VirtualHost*:3000>
ServerName yourdomain.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/project_name/

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

ProxyPreserveHost On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/

RewriteEngine on
RewriteCond %{SERVER_NAME} =yourdomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Habilitamos nuestro nuevo virtual host

$ sudo a2ensite yourdomain.com.conf
$ sudo a2enmod rewrite

Reiniciamos apache

$ sudo systemctl restart apache2
$ sudo service apache2 restart

**Para deshabilitar un host virtual usamos el siguiente comando

$ sudo a2dissite yourdomain.com.conf

**Para solucionar error Invalid command ‘ProxyPreserveHost’, perhaps misspelled or defined by a module not included in the serve

$ apachectl -M | grep proxy

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo systemctl restart apache2

Le agregamos ssl a nuestra Virtual Host

$ sudo certbot --apache

--

--