mirror of
https://github.com/yusing/godoxy.git
synced 2026-03-28 11:51:53 +01:00
added load balance support and verbose level
This commit is contained in:
38
README.md
38
README.md
@@ -13,6 +13,7 @@ In the examples domain `x.y.z` is used, replace them with your domain
|
||||
- [Single Port Configuration](#single-port-configuration-example)
|
||||
- [Multiple Ports Configuration](#multiple-ports-configuration-example)
|
||||
- [TCP/UDP Configuration](#tcpudp-configuration-example)
|
||||
- [Load balancing Configuration](#load-balancing-configuration-example)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Benchmarks](#benchmarks)
|
||||
- [Memory usage](#memory-usage)
|
||||
@@ -25,6 +26,7 @@ In the examples domain `x.y.z` is used, replace them with your domain
|
||||
- path matching
|
||||
- HTTP proxy
|
||||
- TCP/UDP Proxy (experimental, unable to release port on hot-reload)
|
||||
- HTTP round robin load balance support (same subdomain and path across containers replicas)
|
||||
- Auto hot-reload when container start / die / stop.
|
||||
- Simple panel to see all reverse proxies and health (visit port [panel port] of go-proxy `https://*.y.z:[panel port]`)
|
||||
|
||||
@@ -62,6 +64,11 @@ In the examples domain `x.y.z` is used, replace them with your domain
|
||||
|
||||
8. check the logs with `docker compose logs` or `make logs` to see if there is any error, check panel at [panel port] for active proxies
|
||||
|
||||
## Known issues
|
||||
|
||||
- When a container has replicas, you have to specify `proxy.<alias>.host` to the container_name
|
||||
- UDP proxy does not work properly
|
||||
|
||||
## Configuration
|
||||
|
||||
With container name, no label needs to be added.
|
||||
@@ -81,6 +88,19 @@ However, there are some labels you can manipulate with:
|
||||
- `targetPort` must be a number, or the predefined names (see [stream.go](src/go-proxy/stream.go#L28))
|
||||
- `proxy.<alias>.path`: path matching (for http proxy only)
|
||||
- defaults to empty
|
||||
- `proxy.<alias>.path_mode`: mode for path handling
|
||||
- defaults to empty
|
||||
- allowed: \<empty>, forward, sub
|
||||
- empty: remove path prefix from URL when proxying
|
||||
1. apps.y.z/webdav -> webdav:80
|
||||
2. apps.y.z./webdav/path/to/file -> webdav:80/path/to/file
|
||||
- forward: path remain unchanged
|
||||
1. apps.y.z/webdav -> webdav:80/webdav
|
||||
2. apps.y.z./webdav/path/to/file -> webdav:80/webdav/path/to/file
|
||||
- sub: remove path prefix from both URL and HTML attributes (`src`, `href` and `action`)
|
||||
|
||||
- `proxy.<alias>.load_balance`: enable load balance
|
||||
- allowed: `1`, `true`
|
||||
|
||||
### Single port configuration example
|
||||
|
||||
@@ -109,9 +129,9 @@ minio:
|
||||
container_name: minio
|
||||
...
|
||||
labels:
|
||||
proxy.aliases: minio,minio-console
|
||||
proxy.minio.port: 9000
|
||||
proxy.minio-console.port: 9001
|
||||
- proxy.aliases=minio,minio-console
|
||||
- proxy.minio.port=9000
|
||||
- proxy.minio-console.port=9001
|
||||
|
||||
# visit https://minio.y.z to access minio
|
||||
# visit https://minio-console.y.z/whoami to access minio console
|
||||
@@ -144,6 +164,18 @@ go-proxy:
|
||||
# access app-db via <*>.y.z:20000
|
||||
```
|
||||
|
||||
## Load balancing Configuration Example
|
||||
|
||||
```yaml
|
||||
nginx:
|
||||
...
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 3
|
||||
labels:
|
||||
- proxy.nginx.load_balance=1 # allowed: [1, true]
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
Q: How to fix when it shows "no matching route for subdomain \<subdomain>"?
|
||||
|
||||
Reference in New Issue
Block a user