Thousands of applications are hosted on Scalingo, they can be deployed, restarted or scaled at any time. Each of these operations impacts the internal topology of our infrastructure. Traffic routers handle the incoming requests and route them dynamically into the infrastructure.
Our infrastructure is composed of a multitude of servers running our customer’s applications. These servers are not reachable from the wild outside world, they are hidden behind some frontend servers called reverse proxies. A reverse proxy is a HTTP server which receives requests and forwards them to the application containers. Scalingo is powered using OpenResty reverse proxy. When a request is received, the proxy looks at the targeted domain name thanks to the Host HTTP header for a simple HTTP request or to the SNI extension in the case of a secured HTTPS connection. Once the domain name is defined, the connection is forwarded to the container(s) of the application matching this domain name. In a second time, the application container processes the request and sends the answer to the client through the reverse proxy.
All outgoing traffic from Scalingo application comes from the following range of IPs: