may have regex matched groups, i.e. `http://d.example.com:8080/$1`. For the example above `http://s.example.com/api/something?foo=bar` will be proxied to `http://d.example.com:8080/something?foo=bar`.
- for a binary distribution pick the proper file in release section
- docker container available via docker hub (umputun/reproxy) as well as via github container registry (ghcr.io/umputun/reproxy). Latest stable version has `:vX.Y.Z` tag (with `:latest` alias) and the current master has `:master` tag.
The last (4th) element defines an optional ping url used for health reporting. I.e.`*,^/api/(.*),https://api.example.com/$1,https://api.example.com/ping`. See [Health check]() section for more details.
This is a dynamic provider and file change will be applied automatically.
### Docker
Docker provider works with no extra configuration and by default redirects all requests like `https://server/api/<container_name>/(.*)` to the internal IP of given container and the exposed port. Only active (running) containers will be detected.
This default can be changed with labels:
- reproxy.server - server (hostname) to match
- reproxy.route - source route (location)
- reproxy.dest - destination URL
- reproxy.ping - ping url for the destination container
This is a dynamic provider and any change in container's status will be applied automatically.
## SSL support
SSL mode (by default none) can be set to `auto` (ACME/LE certificates), `static` (existing certificate) or `none`. If `auto` turned on SSL certificate will be issued automatically for all discovered server names. User can override it by setting `--ssl.fqdn` value(s)
## Logging
By default no request log generated. This can be turned on by setting `--logger.enabled`. The log (auto-rotated) has [Apache Combined Log Format](http://httpd.apache.org/docs/2.2/logs.html#combined)
## Assets Server
User may turn assets server on (off by default) to serve static files. As long as `--assets.location` set it will treat every non-proxied request under `assets.root` as a request for static files.
## More options
-`--gzip` enables gizp compression for responses.
-`--max=N` allows to set the maximum size of request (default 64k)
-`--header` sets extra header(s) added to each proxied request
-`/ping` responds with `pong` and indicates what reproxy up and running
-`/health` returns `200 OK` status if all destination servers responded to their ping request with `200` or `417 Expectation Failed` if any of servers responded with non-200 code. It also returns json body with details about passed/failed services.