HTTP
Expose an internal HTTP service to the public internet by domain. The server must enable the domain gateway; see Domains.
domains is required and must be non-empty: a full domain (e.g. web.example.com), or a short prefix with no . (e.g.
web, which requires server rootDomain). Wildcards are not supported.
Example: Expose a web service
Server:
# orbien-server.toml
listen = "0.0.0.0:9527"
httpGwPort = 80
Client:
# orbien.toml
server = "YOUR_SERVER_IP:9527"
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
Point web.example.com at the server IP, then access:
curl http://web.example.com
Example: Basic authentication
[[tunnels]]
name = "web-auth"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
basicAuthUser = "alice"
basicAuthPassword = "secret"
Requests must include Basic credentials; failure returns 401:
curl -u alice:secret http://web.example.com
Example: Rewrite Host
Rewrite the request Host when forwarding to the local service:
[[tunnels]]
name = "web"
protocol = "http"
service = "127.0.0.1:8080"
domains = ["web.example.com"]
hostHeaderRewrite = "127.0.0.1"
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
name | Yes | Tunnel name; must be unique | |
protocol | Yes | Always http | |
service | Yes | Local service address, e.g. 127.0.0.1:8080 | |
domains | Yes | Domain list; at least one; full domain or a prefix with no . (prefix requires server rootDomain) | |
locations | No | Path prefix, e.g. /api; empty means all paths | |
basicAuthUser | No | HTTP Basic username; if both this and basicAuthPassword are empty, auth is disabled | |
basicAuthPassword | No | HTTP Basic password | |
hostHeaderRewrite | No | Rewrite Host when forwarding to the local service; empty means no rewrite | |
transport.bandwidth | No | 0 | Bandwidth cap (Mbps); 0 means unlimited |
transport.bandwidthLimitSide | No | client | Limit side: client / server |
transport.proxyProtocolVersion | No | PROXY Protocol: v1 / v2 |