Kvarn’s reverse proxy implementation allows pass through of web servers’ responses.
On the git version of Kvarn, URL rewrite is implemented, and automatically applied.
It can for instance pass all requests under /api/*
to a backend server. It
caches according to the cache-control
and
kvarn-cache-control
headers. /api/search?q=icelk
becomes a request to /search?q=icelk
on the
backend server.
This implementation is used by me for proxying my self-hosted Bitwarden vault (using Vaultwarden, of course) to the internet.
Usage
You start with constructing a
manager.
I recommend using
static_connection
and
localhost
and the
Manager::base
constructor.
Consider
Manager::new
for more control.
Then, mount it to your extensions using
Manager::mount
.