Clase 4: Introducción a proxy inverso
¿Qué vas a aprender en esta clase?
- Vamos a aprender el concepto de proxy inverso.
- Vamos a montar un escenario usando opentofu y ansible.
- Vamos a configurar Apache2 y nginx como proxy inverso.
- Vamos a configurar el proxy inverso para que sea capaz de resolver las redirecciones.
Recursos
Los contenidos necesarios para la realización de este ejercicio y para profundizar en la configuración de nginx, lo puedes encontrar en el siguiente apartado:
Ejercicios
-
Vamos a a usar el escenario2 del repositorio opentofu-libvirt para montar el siguiente escenario:

- Una máquina
proxyque esta conectada al exterior por una red NAT y a una red interna muy aislada (dirección10.0.0.1). - Una máquina
backendque tendrá un servidor web interno, conectada a la red interna muy aislada (dirección10.0.0.2). También está conectado a la red NAT, pero sólo para poder configurarla con la receta ansible.
- Una máquina
-
Tenemos a nuestra disposición un playbook de ansible que va a instalar un servidor web apache2 en la máquina
backendy puede crear una lista de virtualhost. Para configurar los virtualhost tienes que modificar la lista de diccionarios llamadavirtualhostsque encuentras en el ficherogruops_vars/all.Configura esa variable para crear dos virtualhosts:
- Uno en el fichero
vhost1.confque se acceda con el nombreinterno.example1.org, cuyo DocumentRoot sea/var/www/example1. - Otro en el fichero
vhost2.confque se acceda con el nombreinterno.example2.org, cuyo DocumentRoot sea/var/www/example2.
Además tienes que indicar en el inventario la dirección IP del servidor
backenden la red NAT por donde vamos a realizar la configuración.Crea el escenario y ejecuta el playbook de ansible para configurar el
backend(recuerda que tienes que poner en el inventario la ip del servidorbackend). - Uno en el fichero
- Instala un servidor web apache2 en la máquina
proxy. Vamos a configurar el proxy para acceder a las páginas delbackend: A la primera página con la URLwww.app1.orgy a la segunda página con la URLwww.app2.org. Recuerda que debes añadir en la resolución estática delproxylos nombres con los que se accede internamente a las páginas web. Cuidado con la directivaProxyPreserveHost On, en este ejercicio el nombre de los host virtuales delbackendson distintos a los que usamos accediendo al proxy inverso. - Realiza la configuración para que las redirecciones funcionen: al acceder a
http://www.app1.org/directoriose debe realizar una redirección al directorionuevodirectorio. - Modifica la configuración del proxy para acceder a las páginas web con las siguientes URL:
www.servidor.org/app1ywww.servidor.org/app2. Debe seguir funcionando las redirecciones. - Desisntala apache2 e instala nginx en el
proxy. - Configura nginx como proxy inverso para acceder a las páginas del
backend: A la primera página con la URLwww.app1.orgy a la segunda página con la URLwww.app2.org. - Modifica la configuración del proxy para acceder a las páginas web con las siguientes URL:
www.servidor.org/app1ywww.servidor.org/app2.
¿Qué tienes que entregar?
- Con apache2, pantallazos donde se compruebe el acceso a las dos páginas web:
www.app1.orgywww.app2.org. - Quita la directiva
ProxyPassReversey comprueba que no se sigue la redirección. Realiza una petición HEAD concurlahttp://www.app1.org/directorio. ¿Qué cabecera tienes que comprobar para asegurar que la redirección no funciona? - Con apache2, pantallazos donde se compruebe el acceso a las dos páginas web:
www.servidor.org/app1ywww.servidor.org/app2. - Con nginx, pantallazos donde se compruebe el acceso a las dos páginas web:
www.app1.orgywww.app2.org. - Con nginx, pantallazos donde se compruebe el acceso a las dos páginas web:
www.servidor.org/app1ywww.servidor.org/app2.