xsank / Easyproxy
Licence: mit
Make tcp proxy easy to use.
Stars: ✭ 253
Programming Languages
go
31211 projects - #10 most used programming language
EasyProxy
A simple proxy server.
Introduction
+----------+ +------------+
| client |<--------+ | |
+----------+ +-------->+-----+<--------------->| server |
| | | |
+----------+ | | +------------+
| client |<----------------->| |
+----------+ | |
| | +------------+
+----------+ | L | | |
| client |<----------------->| B |<--------------->| server |
+----------+ | S | | |
| | +------------+
+----------+ | |
| client |<----------------->| |
+----------+ | | +------------+
| | | |
+----------+ +--------->+-----+<--------------->| server |
| client |<-------+ | |
+----------+ +------------+
As the chart above, easyproxy act as the LBS server. If you meet the situation that cannot access some service directly or need a server as a gateway, you may use this to proxy.
Usage
go get github.com/xsank/EasyProxy
go run build.go build
- The sample config is about mysql proxy, so you can access the mysql database actually at backend
through the
localhost 9527
, you can easily modify thedefault.json
to change the service. Any protocol based onTCP
would work well such as:mysql, ssh, svn... - For keep simple, easyproxy only support
poll
,random
,iphash
strategies, and the default strategy ispoll
,the easyproxy would add more if there is a demand. - Besides, you can
curl localhost:7259/statistic
to get the current connection status. If you want to know more runtime debug info about the proxy, you cancurl http://localhost:7259/debug/pprof
to get more details. - You can change the number of MAX processorsand and the heartbeat time based on your requirements.
License
Easyproxy is distributed under MIT License.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].