Notas de Luis

¡Esta es una revisión vieja del documento!


# 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 `PROXY` autorizar mediante iptables la entrada de tráfico http y https

de sde internet. Guardar configuración y copiar. Ejecutar como root.

```bash 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 `WEB` no es necesario hacer ningún cambio en `iptables` porque 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 `apache2` en ambas máquinas.

```bash sudo apt-get install apache2 ```

* Cambiar el fichero `index.html` en 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 servidor `WEB`, con el nombre correspondiente.

* En el servidor `PROXY` ejecutar:

```bash sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests sudo systemctl restart apache2 ```

* en el fichero `/etc/hosts` se añade la IP local del servidor `WEB`, con los

dos nombres de dominio.

``` n.n.n.n trainer1.my.to n.n.n.n demotrainer.my.to ```

* En el servidor `PROXY` cambiar la configuración del `apache2`. 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 `WEB` se 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

```bash sudo apt install certbot sudo apt install python3-certbot-apache ```

* Crear certificados

```bash 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.

computing/cloud/oci_reverse_proxy_apache.1768659994.txt.gz · Última modificación: por alfabeto