项目作者: artyom

项目描述 :
https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
高级语言: Go
项目地址: git://github.com/artyom/leproxy.git
创建时间: 2016-04-20T12:53:13Z
项目社区:https://github.com/artyom/leproxy

开源协议:MIT License

下载


Command leproxy implements https reverse proxy with automatic Letsencrypt
usage for multiple hostnames/backends

Install:

  1. go install github.com/artyom/leproxy@latest

Run:

  1. 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:

  1. subdomain1.example.com: 127.0.0.1:8080
  2. subdomain2.example.com: /var/run/http.socket
  3. subdomain3.example.com: @abstractUnixSocket
  4. uploads.example.com: https://uploads-bucket.s3.amazonaws.com
  5. # this is a comment, it can only start on a new line
  6. 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).