@startuml title Staging Reverse Proxy participant User box "Firewall" #Orange participant fw note over fw: NAT between vlan \n1300 (public) addresses \nto vlan 443 (staging) end box box "1 global reverse proxy" #LightGreen participant FrontendHitch participant Varnish end box box "1 node per service (webapp, deposit)" #LightBlue participant Apache participant Gunicorn end box activate fw User -> FrontendHitch: https queries activate FrontendHitch FrontendHitch -> Varnish: forwards query note left: ssl termination activate Varnish alt #transparent cache hit Varnish -> FrontendHitch: returns result FrontendHitch --> User: returns result else cache missed Varnish -> Apache: forwards query activate Apache Apache -> Gunicorn: forwards query activate Gunicorn Gunicorn --> Apache: returns result deactivate Gunicorn Apache --> Varnish: caches and returns result deactivate Apache Varnish -> FrontendHitch: returns result FrontendHitch --> User: returns result deactivate Varnish deactivate FrontendHitch end @enduml