# Configure the reverse proxy on TurboStack

Enabling the reverse proxy tells Nginx to forward an application's requests to your
application's upstream port instead of serving PHP or static files.

![The Reverse Proxy panel under Configure application > Technologies, enabled, showing the IP/Hostname and Port fields, the note that it exposes Docker and Node.js applications, and the warning that it is incompatible with Varnish|1000](../../assets/screenshots/technologies/reverse-proxy.png)

## Where to configure it

The reverse proxy is enabled per application:

1. Open the host and select the application.
2. Go to **Configure application > Technologies > Reverse Proxy**.
3. Enable the reverse proxy and set the **upstream port** your application
   listens on.

TurboStack generates the Nginx vhost from there - there is no raw proxy config
to write by hand.

## YAML configuration

### Required

| Key | Meaning |
|---|---|
| `proxy_enabled` | Set to `true` to forward this application's requests to a backend upstream. |
| `proxy_upstream_port` | The port your application listens on, where Nginx forwards requests. |

### Optional

| Key | Meaning |
|---|---|
| `proxy_upstream_host` | The host Nginx forwards to. Defaults to `127.0.0.1` (loopback). |

```yaml
# Per-application: forward requests to a backend app on port 3000
proxy_enabled: true
proxy_upstream_port: 3000
proxy_upstream_host: 127.0.0.1   # optional, this is the default
```

> [!TIP]
> Keep `proxy_upstream_host` at `127.0.0.1` so your application is reachable only
> through Nginx. For containerized apps, combine this with
> [Docker](../docker/configure.md) and point the upstream port at the
> container's exposed port.

## Related

- [What is a reverse proxy?](what-is.md)
- [Applications tab](../../platform/hosts/applications/index.md)
- [Applications overview](../../applications/index.md)
