Tabla de Contenidos
Oracle Cloud - Proxy inverso Apache
Crear proxy
- Crear servidor proxy inverso (lo llamaremos
PROXY). - En la misma VCN crear servidor Web (lo llamaremos
WEB). - En
PROXYautorizar mediante iptables la entrada de tráfico http y https de sde internet. Guardar configuración y copiar. Ejecutar como root.
iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT iptables-save >/etc/iptables/rules.v4 cp /etc/iptables/rules.v4 /home/ubuntu/copias
- En
WEBno es necesario hacer ningún cambio eniptablesporque por defecto están autorizadas las comunicaciones dentro de la misma VCN. - Autorizar el tráfico http y https de entrada a la VCN. Modificando la lista de seguridad por defecto.
- Instalar
apache2en ambas máquinas.
sudo apt-get install apache2
- Cambiar el fichero
index.htmlen ambos servidores y poner en cada uno de ellos el nombre del servidor. De esta manera nos servirá para las pruebas. - En el DNS crear el nombre de dominio apuntando a la IP pública del servidor
PROXY. - Al navegar a ese nombre de dominio nos debe dar la página web con el nombre del servidor
PROXY. Lo que pretendemos conseguir es que nos dé la página web del servidorWEB, con el nombre correspondiente. - En el servidor
PROXYejecutar:
sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests sudo systemctl restart apache2
- en el fichero
/etc/hostsse añade la IP local del servidorWEB, con los dos nombres de dominio.
n.n.n.n trainer1.my.to n.n.n.n demotrainer.my.to
- En el servidor
PROXYcambiar la configuración delapache2. Se añaden dos ficheros con los nuevos host virtuales.
''demotrainer.conf''
<VirtualHost *:80>
ServerAdmin ubuntu@localhost
ServerName demotrainer.my.to
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
ProxyPass / http://demotrainer.my.to/
ProxyPassReverse / http://demotrainer.my.to/
ProxyRequests On
ProxyPreserveHost On
</VirtualHost>
''trainer1.conf''
<VirtualHost *:80>
ServerAdmin ubuntu@localhost
ServerName trainer.my.to
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
ProxyPass / http://trainer1.my.to/
ProxyPassReverse / http://trainer1.my.to/
ProxyRequests On
ProxyPreserveHost On
</VirtualHost>
Con esto habremos redirigido todo el tráfico http al servidor ''WEB''.
- En el servidor
WEBse hace lo mismo. Se añaden dos ficheros con los nuevos host virtuales.
''demotrainer.conf''
<VirtualHost *:80>
ServerAdmin ubuntu@localhost
ServerName demotrainer.my.to
DocumentRoot /var/www/demotrainer
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
</VirtualHost>
''trainer1.conf''
<VirtualHost *:80>
ServerAdmin ubuntu@localhost
ServerName trainer1.my.to
DocumentRoot /var/www/trainer1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log vhost_combined
</VirtualHost>
Configurar SSL
Los certificados se instalan en el proxy.
- Instalar paquetes
sudo apt install certbot sudo apt install python3-certbot-apache
- Crear certificados
sudo certbot -d trainer1.my.to -d demotrainer.my.to
Con esto se habrán creado dos servidores virtuales nuevos para https, apuntando a los nuevos certificados. Los servidores virtuales viejos se habrán modificado para redirigir las peticiones http a https.