Configurar Bot en una instancia de AWS
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