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