找不到合适的图,随便弄了个。

 

因为一些原因吧,我有两个服务器必须用windows系统,主要是做外盘行情传递和应急交易外盘用。

这两个机器速度不错,带宽也多,想着可以给网站做个前端用。

但是win上还真找不到好用的反向代理服务器,nginx和apache2在win上速度不行,还总出问题,以前尝试过。squid太老了就不提了。其他的要么还不成熟,要么功能太弱了点,所以自己手搓了一个。。。

 

功能上很复杂,好些东西一时我都想不起来,比较主要的:

性能方面,go搞的,让ai评估了一下,一万以上的并发肯定没问题,每秒钟一万请求量肯定不在话下,因为实际压力很小,所以没太在意这方面,但是底层的iocp摆着呢,不会差的。

功能方面,太多。

原生跨平台、多站点、多协议形态、多后端、多负载模式(多种负载均衡策略、权重、负载、主备切换、等等)、后端服务器池模式、路由重写、基于ip/cidr的acl、acl列表自动重载、站点和路由两级限速、异常灵活的匹配策略(包括路由匹配、缓存匹配等等)、非常灵活的两种健康检查模式、两级端口设置、基于扩展名的拒绝设定、基于url的拒绝模式、可以根据路径(路由)设置某些地址的重写以及单独设定后端服务器、基于路由的缓存设定、后端服务器/请求/响应的http头部设定、基于路由的mime设定等等等等等等,太多了,一时我都记不清,就这些还是看着配置文件写的。。。

还做了个监控页面和api接口,可以实时查看所有站点和上游服务器以及整体的请求数、失败数、带宽和流量、健康情况、在线离线情况等信息。

对了,还可以作为一个文件服务器来用,可以设置某个站点或者某个路由为本地路径,可以设置是否列目录,可以隐藏某些路径和文件名等等等等。这样就可以让一些常年不更新的文件直接从本地提供,又或者一个站点可以多做几个映射目录,就可以用一个站点来管理许多东西。

所有需要匹配的地方都支持正则,除了目录列表隐藏文件名的时候只做了通配符,但这里其实也是可以写正则的。

多数设置都可以有全局和站点两级设置,部分还可以做在路由设置里,站点设置优先于(覆盖)全局设置,很方便。

日志的灵活性比nginx和apache都高,也支持发到syslog(还没测试)。

 

功能太多,一时我也想不起来了,主要就是这么多年各种软件用下来,多多少少都有不爽的地方,所以自己手搓一个能让自己满意的。当然最重要是需要能在windows上高性能运行,毕竟这个才是这次动手的主旨。

 

周末把syslog部分看看还有没有问题,近期需要开发的东西就完了,后面看孩子成绩情况能不能上高中,后面事情就多了,暂时应该不做什么软件了。

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注