为VKProxy编写UI配置站点和文档,有哪些可以优化?

摘要:VKProxy 是使用c#开发的基于 Kestrel 实现 L4L7的代理 有兴趣的同学点个赞呗 目前已经在写文档了, 文档在 https:fs7744.github.ioVKProxy.Docdocsintroduction.
VKProxy 是使用c#开发的基于 Kestrel 实现 L4/L7的代理 有兴趣的同学点个赞呗 目前已经在写文档了, 文档在 https://fs7744.github.io/VKProxy.Doc/docs/introduction.html (未完成全部) UI配置站点也在开发ing了,会基于 etcd 作为配置源,主要考虑配置文件分发会导致大家在部署多实例场景有难度 docker 会在 UI配置站点 完成后再完善到文档 这里列举一下基本的配置 安装 自行构建 VKProxy 有很多扩展点可以定制化大家所需特制化需求,所以有相关需求时推荐自行构建 创建一个项目,然后选取所需package安装 dotnet add package VKProxy dotnet add package VKProxy.Storages.Etcd 配置程序 using Microsoft.Extensions.Hosting; using ProxyDemo; var app = Host.CreateDefaultBuilder(args) .UseReverseProxy() .ConfigureServices(i => { // 默认加载appsettings.json 配置 // 如需采用 etcd 作为配置源,请设置环境变量`ETCD_CONNECTION_STRING`并使用如下代码 // i.UseEtcdConfigFromEnv(); }) .Build(); await app.RunAsync(); 配置代理 假如使用 appsettings.json 进行配置, 这里列举一个http1的代理配置 (配置项很多,可参考后续具体配置项说明, 也可以考虑使用 UI配置站点) { "ReverseProxy": { // 监听端口 127.0.0.1:5001 "Listen": { "http": { "Protocols": [ "Http1" ], "Address": [ "127.0.0.1:5001" ] } }, // 设置路由匹配任意 com 结尾的host,以及 url开头为 /ws 并且 method 为 GET的请求 "Routes": { "HTTPTEST": { "Match": { "Hosts": [ "*com" ], "Paths": [ "/ws*" ], "Statement": "Method = 'GET'" }, "ClusterId": "apidemo", "Timeout": "00:10:11" } }, // 配置匹配请求转发到对应目标地址,并且通过主动健康检查保证服务稳定 "Clusters": { "apidemo": { "LoadBalancingPolicy": "RoundRobin", "HealthCheck": { "Active": { "Enable": true, "Policy": "Http", "Path": "/test", "Query": "?a=d", "Method": "post" } }, "Destinations": [ { "Address": "http://127.0.0.1:1104" }, { "Address": "https://google.com" } ] } } } } 不同监听场景如何配置 [!WARNING] 虽然可以在运行时动态变更监听,但是目前Kestrel在终止监听时会等待已有连接结束,以降低对用户影响,达到优雅关闭的效果 所以在动态变更时不一
阅读全文