Proxy / WebSocket routes
A proxy route forwards a public address (a path or a subdomain of your domain) over HTTPS to the port of a process running directly on your hosting – typically a Node.js server for WebSockets (Laravel Reverb, a Pusher-compatible server, chat, real-time notifications and similar). The target is always an internal address inside your hosting (127.0.0.1:<port>) – you only enter the port your process listens on.
Where to find it
In https://panel.cloudweb.sk open the hosting, go to the Development tab and, inside it, the Proxy / WS sub-tab. The tab is available if you have the "Domains & subdomains" permission on the hosting – always for the owner, and for an invited collaborator only if that permission was granted (see collaborators). The tab is not available on a business-card (static) hosting.
Two match types
- Path – for example
/ws. Always works, regardless of the subdomain setting. The path cannot be the root "/", cannot end in.php, and cannot start with/.well-known/acme-challenge(reserved for issuing SSL certificates). - Subdomain – for example
ws, which createsws.yourdomain.sk. This requires the hosting's Domains → Subdomains tab to be set to one of the wildcard-certificate modes: Serve All to Main, Redirect All to Main, Folder Based or Mixed. In Manual mode there is no wildcard certificate, so a subdomain proxy route cannot be added – the panel rejects it and suggests a path route (for example/ws) instead. The first time you create a subdomain route, the panel automatically adds the matching DNS A record pointing at the server (if we manage that domain's DNS); if the record already exists, nothing changes.
Route settings
- Port – 1 to 65535. Ports
80, 443, 9000, 22, 3306, 6379cannot be entered – they are reserved for the web server, PHP-FPM, SSH and the databases, and proxying to them would expose those services publicly. - WebSocket – enables the
Upgrade/Connectionheaders needed for the WebSocket handshake and extends the timeout to 24 hours (86,400 s) instead of the default 60 seconds. You can also set a custom timeout manually (1 to 86,400 s). - Strip the path prefix (path routes only) – turn this on when the backend expects requests at its root (for example Laravel Reverb/Pusher, which handshakes at
/app/<key>):/ws/app/xis then forwarded to the backend as/app/x. - Enabled/disabled – a route can be temporarily switched off without deleting it.
After a route is added, edited or removed, the panel immediately pushes the current route set to the server, which validates it and reloads it into the running hosting with no restart. If that fails for any reason, the route stays saved and the panel tells you the hosting may need to be reconfigured – contact support in that case.
How it relates to Background Processes
A proxy route only forwards public traffic to a port – the process inside your hosting has to be running on its own. To keep a Node.js server (or another long-running process) running continuously and restart it on a crash, set it up under Background Processes (Supervisor) first, then add a proxy route to its port.
Was this article helpful?
Your feedback helps us improve our documentation