hostsplitter: HTTP反向代理和负载平衡器

jopen 9年前

HostSplitter

HostSplitter是一个HTTP反向代理和负载平衡器,它将基于主机头将请求分发至任意数量的网站

Motivation

I commonly run into an issue developing small golang websites: I want to use the same IP address for many sites that aren't large enough to justify their own server.

Site files

HostSplitter will look for site files by default in "/etc/hostsplitter/". HostSplitter will only read files with the .json extension.

A each site file should look like

{      "hostnames": [          "ammar.io",          "www.ammar.io"      ],      "backends": [          "127.0.0.1:9000"      ],      "secret": "puppies1234"  }

The "secret" field is passed along with every request to that site in the X-Hostsplitter-Secret header. This is intended to be checked before trusting the passed along IP.

Real IP

The original requester's IP is located in the X-Forwarded-For header.

Reloading

HostSplitter provides 0 downtime reload functionality via SIGUSR1. E.g

pkill -10 hostsplitter

Roadmap

  • SSL

项目地址: https://github.com/ammario/hostsplitter