FastGateway:一个可以用于代替 Nginx 的网关

在我本人研究Yarp的时候经常用于公司项目的业务网关代理,这时候就个大佬问我是否可以实现动态加载HTTPS证书?那时候我说不太可能实现,然而在某一天我看到

微软使用Yarp代替了Nginx吞吐量提升了百分之八十!

这个时候我就萌生了自己使用yarp造一个Gateway的项目,应为我本身也经常使用nginx作为网关,但是nginx的使用总得写conf,然后重启我的nginx,并且还需要配置证书重启,我就在想是否可以实现界面管理,并且完全动态管理?

然后我们的FastGateway项目就诞生了,下面我们介绍一下我们的FastGateway的项目简单案例

## FastGateway

我们的FastGateway提供了俩个容器,一个是代理服务,一个是前端服务

一般简单使用就可以直接使用我们的docker-compose构建,非常简单

FastGateway支持哪些功能?

技术栈

后端技术栈

前端技术栈

镜像执行指令

Docker-Compose文件

如果并没有提供账号密码则默认

账号:root

密码:Aa010426.

替换默认的https证书

由于需要使用https,为了方便系统默认提供了一个pfx证书,如果你需要提供的话可以按照以下操作进行,如果是Docker执行的话证书的目录则是/app/certificates/gateway.pfx

参考上面的docker-compose文件,我们提供了俩个环境变量HTTPS_PASSWORD,HTTPS_FILE,

HTTPS_FILE:

HTTPS_PASSWORD:

/app/certificates:

使用隧道

增加TUNNEL_PASSWORD环境变量,默认为空不设置密码

下载隧道客户端https://gitee.com/hejiale010426/Gateway/releases然后解压压缩包,打开appsettings.json文件修改Tunnel节点的Url,如果Gateway使用了TUNNEL_PASSWORD,那么你的URL应该是https://localhost:8081/api/gateway/connect-h2?host=backend1.app&password=dd666666,host是在集群中的集群端点的域名,这个域名就是定义到我们的隧道客户端的host的这个参数,请保证值的唯一性,当绑定集群的路由匹配成功以后则会访问图片定义的端点,如果并没有存在节点那么他会直接代理。

出入流量监控

使用环境变量控制是否启用流量监控,使用环境变量ENABLE_FLOW_MONITORING设置我们是否启用流量监控,如果为空则默认启动流量监控,然后可以打开我们的控制面板查看流量监控的数据。

开源地址:FastGateway: FastGateway 一个超级简单方便的网关,基于Kestrel+Yarp实现的网关。 支持动态配置路由,支持动态配置集群,支持动态配置HTTPS证书,无需重启即可使用。 (gitee.com)

效果图

未经允许不得转载:岩猫星空网 » FastGateway:一个可以用于代替 Nginx 的网关