Request Flow
Overview
Request Flow is Clever Cloud’s automatic middleware chaining mechanism. It configures reverse proxies and services between the public port (8080) and your application, managing port allocation automatically. There is no need to manually configure listening ports for each service.
Request Flow is available in the following runtimes:
Supported services
| Service | Activation | Description |
|---|---|---|
varnish | clevercloud/varnish.vcl file or CC_VARNISH_FILE | HTTP cache accelerator |
redirectionio | CC_REDIRECTIONIO_PROJECT_KEY | HTTP redirects, rewrites, SEO |
custom | CC_REQUEST_FLOW_CUSTOM | Any custom reverse proxy |
Automatic detection
When no CC_REQUEST_FLOW is set, Clever Cloud detects and activates services automatically:
- If a
clevercloud/varnish.vclfile exists (orCC_VARNISH_FILEis set), Varnish is activated - If
CC_REDIRECTIONIO_PROJECT_KEYis set, Redirection.io is activated
Both can be active simultaneously. Default order: Varnish first, then Redirection.io.
Port management
Request Flow allocates ports in a chain from port 8080 (public) down to the application:
- With no middleware: your application listens directly on port
8080 - With one middleware: the middleware listens on
8080, forwards to your application on port9000 - With two middleware: first listens on
8080, forwards to second on8081, which forwards to the application on9000
Your application must listen on port 8080 when no middleware is active, or on port 9000 when at least one middleware is configured.
Note
In runtimes where Clever Cloud manages the port configuration (FrankenPHP, Static), port allocation is handled transparently with no additional configuration.
Explicit configuration with CC_REQUEST_FLOW
To control the order or selection of middleware, set CC_REQUEST_FLOW to a comma-separated list of services:
CC_REQUEST_FLOW="redirectionio,varnish"This inverts the default order: Redirection.io listens on 8080, forwards to Varnish on 8081, which forwards to the application on 9000.
Disable Request Flow
To disable Request Flow entirely and have your application listen directly on port 8080:
CC_REQUEST_FLOW="disable"Custom middleware
To insert a custom reverse proxy in the chain, add custom to CC_REQUEST_FLOW and define the command with CC_REQUEST_FLOW_CUSTOM. The deployment process replaces @@LISTEN_PORT@@ and @@FORWARD_PORT@@ placeholders with the actual allocated ports:
CC_REQUEST_FLOW="redirectionio,custom,varnish"
CC_REQUEST_FLOW_CUSTOM="./my-proxy --listen @@LISTEN_PORT@@ --forward @@FORWARD_PORT@@"In this example:
- Redirection.io listens on
8080, forwards to custom middleware on8081 - Custom middleware listens on
8081, forwards to Varnish on8082 - Varnish listens on
8082, forwards to the application on9000
Environment variables reference
| Name | Description |
|---|---|
CC_REQUEST_FLOW | Comma-separated list of middleware to chain (e.g. varnish,redirectionio). Special values: disable, block |
CC_REQUEST_FLOW_CUSTOM | Command to start a custom middleware. Must contain @@LISTEN_PORT@@ and @@FORWARD_PORT@@ placeholders |
CC_REDIRECTIONIO_PROJECT_KEY | Redirection.io project key. Activates Redirection.io in the request flow |
CC_VARNISH_FILE | Path to a custom Varnish VCL file (default: clevercloud/varnish.vcl) |
Did this documentation help you ?