https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
385
Command leproxy implements https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
Install:
go get github.com/artyom/leproxy
Run:
leproxy -addr :https -map /path/to/mapping.yml -cacheDir /path/to/letsencrypt
mapping.yml contains host-to-backend mapping, where backend can be specified as:
Example:
subdomain1.example.com: 127.0.0.1:8080
subdomain2.example.com: /var/run/http.socket
subdomain3.example.com: @abstractUnixSocket
uploads.example.com: https://uploads-bucket.s3.amazonaws.com
static.example.com: /var/www/
Note that when @name backend is specified, connection to abstract unix socket
is made in a manner compatible with some other implementations like uWSGI, that
calculate addrlen including trailing zero byte despite documentation not
requiring that. It won't
work with other implementations that calculate addrlen differently (i.e. by
taking into account only strlen(addr) like Go, or even UNIX_PATH_MAX).
Alternatively you can specify the host-to-backend mapping inline with the -inlineMap flag. Multiple mapping pairs should be separated with commas.
Example:
leproxy -inlineMap subdomain1.example.com:127.0.0.1:8080,static.example.com:/var/www/
There is a Docker image, available at artyom/leproxy. The container is started
with attributes -http=:80", "-addr=:443, and the rest should be provided
as the command. Example:
docker run -p 80:80 -p 443:443 --rm artyom/leproxy -inlineMap static.example.com:/etc/
Content type
Image
Digest
Size
2.5 MB
Last updated
almost 8 years ago
docker pull imankulov/leproxy