# ============================================================ # lab-net-proxy — un intermediario entre el cliente y la app # ------------------------------------------------------------ # Lo usa la leccion f02-http: ver la peticion como la ve alguien # que esta en medio, y comprobar que ese alguien puede cambiarla. # # host # └── 127.0.0.1:8092 ──► intermediario ──┐ # │ prx_interna (internal: true) # ┌──────────┴──────────┐ # ▼ ▼ # app cliente # # El intermediario registra la peticion entera (metodo, ruta, # cabeceras, cookie) y reescribe lo que le da la gana antes de # reenviarla. No hay ningun truco: es un proxy inverso normal. # Ese es justamente el punto de la leccion. # # docker compose up -d --build levantar # docker compose down -v destruir # ============================================================ name: lab-net-proxy networks: prx_borde: driver: bridge prx_interna: driver: bridge internal: true services: # --- el que esta en medio --------------------------------- intermediario: image: nginx:1.27-alpine container_name: labnetprx-intermediario ports: - "127.0.0.1:8092:8080" volumes: - ./conf/intermediario.conf:/etc/nginx/conf.d/default.conf:ro networks: - prx_borde - prx_interna depends_on: - app restart: unless-stopped # --- aplicacion objetivo ---------------------------------- # /eco devuelve en texto plano lo que la app cree haber # recibido. Comparar lo que envias con lo que /eco reporta es # todo el ejercicio. app: image: nginx:1.27-alpine container_name: labnetprx-app volumes: - ./conf/app.conf:/etc/nginx/conf.d/default.conf:ro - ./sitio:/usr/share/nginx/html:ro networks: - prx_interna restart: unless-stopped # --- puesto de trabajo ------------------------------------ # Puede hablar con la app directamente Y a traves del # intermediario. Comparar las dos rutas es el ejercicio. cliente: build: ./herramientas image: labnetprx-herramientas container_name: labnetprx-cliente command: ["sleep", "infinity"] networks: - prx_interna restart: unless-stopped