Erlang/Elixir 分享一下我在做的 Erlang 项目:HTTP 反向代理

daqing · 2013年06月06日 · 最后由 daqing 回复于 2013年06月07日 · 5179 次阅读

源代码

https://github.com/daqing/smart_mesh

简介

Smart Mesh 是基于 cowboy 实现的 HTTP 反向代理,可以基于主机名和服务器压力,进行比较智能的负载均衡。

目前的实现比较简单,数据都存储在内存中,还没有做持久化。

感兴趣的可以浏览一下,代码不多。

{ok, BodyBin, _Req} = cowboy_req:body(Req),
httpc:request(
...
BodyBin

{ok, Req2} = cowboy_req:reply(StatusCode, RspHeaders, RspBody, Req)

我说为啥我没看懂你在写什么,原来如此。

你不怕内存爆了啊

#1 楼 @bhuztez 再说,cowboy 本身就把所有的请求数据,都读入内存了呀。。我只是取到那个数据,再转发出去。

目前只支持 GET 和 POST 请求,对于文件上传,就不能这样处理了。

#3 楼 @daqing 两个方向都不对啊

也有按流量负载均衡的需求啊

#4 楼 @bhuztez 哦,这个项目的目标,不是做成通用的负载均衡服务器,而是一个大系统的内部组件。

#5 楼 @daqing

可以基于主机名和服务器压力,进行比较智能的负载均衡。

有时间我给你 pull-request

需要 登录 后方可回复, 如果你还没有账号请 注册新账号