Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/artyom/leproxy
https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
https://github.com/artyom/leproxy
go golang https-proxy https-server letsencrypt reverse-proxy
Last synced: about 12 hours ago
JSON representation
https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
- Host: GitHub
- URL: https://github.com/artyom/leproxy
- Owner: artyom
- License: mit
- Created: 2016-04-20T12:53:13.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-10T17:34:16.000Z (about 1 year ago)
- Last Synced: 2024-06-18T22:59:53.065Z (5 months ago)
- Topics: go, golang, https-proxy, https-server, letsencrypt, reverse-proxy
- Language: Go
- Homepage:
- Size: 33.2 KB
- Stars: 98
- Watchers: 3
- Forks: 16
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Command leproxy implements https reverse proxy with automatic Letsencrypt
usage for multiple hostnames/backendsInstall:
go install github.com/artyom/leproxy@latest
Run:
leproxy -addr :https -map /path/to/mapping.txt -cacheDir /path/to/letsencrypt
`mapping.txt` contains host-to-backend mapping, where backend can be specified as:
* http/https url for http(s) connections to backend *without* passing "Host"
header from request;
* host:port for http over TCP connections to backend;
* absolute path for http over unix socket connections;
* @name for http over abstract unix socket connections (linux only);
* absolute path with a trailing slash to serve files from a given directory.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
# this is a comment, it can only start on a new line
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](http://man7.org/linux/man-pages/man7/unix.7.html). 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`).